前言:
个人因为工作原因,现在开始学习cloud相关的技术。dropwizard是学习的第一个框架,按着官网教程,试着搭建第一个框架,实现“Hello world”。
一、新建一个maven项目
问题:pom.xml文件报错:maven mvn Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin: 2.5
解决方法:
1、查看windows -> Preferences -> maven 的settings.xml文件中.m2的位置
2、然后将.m2/repository/目录下的文件夹全部删除
二、在pom.xml中加入dropwizard依赖
加入前pom.xml
加入后的pom.xml
三、新建一个configuration class
四、新建一个yml文件
这里只需要2行
五、建立Application子类
六、我们目的是输出如下格式的json数据
新建实现类
七、建立资源类
八、完成之后将之前的Application子类的run()方法重写
pom文件加入(这个应该是部署服务用的,跟dropwizard无关)
此时出现了一个错误:
Java compiler level does not match
解决办法:http://jingyan.baidu.com/article/95c9d20da3ec5fec4e756186.html
总结:
一、dropwizard框架实现一个helloWord需要这几个文件
1、configuration: Configuration的子类
2、application : Application的子类 ,重写run(configuration,environment),在main()方法中调用。
3、yml文件
4、跟需要返回的字段相对应的pojo类
5、resource:有与url对应的方法,返回一个pojo类实例。Jerser会将pojo实例转化为相应的json,所以pojo的属性和json的字段一一对应。
二、执行过程的理解
首先运行的是application类中的main方法,main方法调用run(configuration,environment)。
configuration中是一些参数的配置:如每一个属性就是json的一个字段。
run方法运行时根据configuration新建了一个resource,然后environment中的jerser会使用这个resource
yml文件这里我的理解是一个模板,比如说url传进来有一个是name为 “leiyong” , 那么相关的pojo、resource、configuration中的name属性的value都是leiyng,
但是返回需要是 hello ,leiyong , welcome! 这里就需要在yml文件中配置。