最近在自学spring boot ,新手教程网上很多,这里主要记录下配置过程中的一些疑难杂症。这些记录都是针对以下配置生成的项目
1、该项目一定要用jdk1.8
2、application.properties不被加载解决办法
SpringBootTry/src/main/resources/application.properties 的配置文件可能不会被加载。写个 server.port=8081 就能测试。若端口号未被修改成8081,则检查下项目的properties中 椭圆标记的地方是不是 写了 **,如下图
是的话,点击Edit→选中**→点击Remove→点击Finish,就好了。
3、各类文件的默认配置路径
1)localhost:8081/对应的路径就是src/main/resources/static/,且static下的所有文件都可以直接访问。
2)Controller中的方法可以并且只可以直接调用static文件夹下的文件。其余路径下的文件需要通过thymeleaf或者freemarker反射访问。
3)通过引用thymeleaf返回视图时,只能返回src/main/webapp下的文件。且数据的装载只能通过jsp或者jstl
4)通过引用freemarker返回视图时,可以返回根目录下的所有的文件(classpath:/templates/)。且数据的装载支持html和jsp。所以本文章的各项内容都是针对配置freemarker的。
5)html中引用js,img,video文件时,可将这些文件直接放入到static中,src默认对应到static文件夹下(src="/js/testFunction.js")。
4、接受和返回数据类型
1)类名前设置@Controller,告知spring当前类可以接受http请求
2)方法名前设置@RequestMapping(value="/b",method = RequestMethod.GET)。value值对应的是请求的路径,method对应的是请求的类型,请求的类型可以不设置。
3)方法名的返回值前设置@ResponseBody,提醒spring当前方法返回的是数据类型,不用去匹配视图。
4)在类名前设置@RestController等于@Controller+@ResponseBody,该类就只能返回数据类型不能返回视图了。
5)@RequestMapping(value="/b/{name}")可以匹配所有的/d/*请求,并且把*赋值给name对象。可在方法中直接调用。
6)请求的url上的属性值,只要与相对应的处理请求的方法的属性值命名一致,则会自动加载。
7)post请求传入的json类的数据,可以写一个java bean,属性名称与json的key值一一对应,即可自动装载数据到java bean 的引用变量中。
5、返回视图
1)返回视图时,方法名的返回值前不加@ResponseBody。
2)返回类型使用ModelAndView,可同时返回视图和数据,方便前端控制器加载。
3)前端页面直接使用${"KEY"}就可以使用ModelAndView中的值
6、其余方法
1)java bean的类名上使用@Repository(value="people"),要使用该类时,直接在类的引用变量上使用 @Resource(name="people") ,相当于自动new了一个people对象。若不设置value值,则默认当前class类首字母小写作为引用的别名。@Resource(name="peopleT")也可以写在set方法上,更符合封装的特性。
上诉方法的测试项目下载地址:github下载地址,点击Download就行