spring boot笔记

来源:互联网 发布:unity 房卡 麻将源码 编辑:程序博客网 时间:2024/06/10 15:37

(1)

classpath 代表的位置:https://www.cnblogs.com/aiugu/p/6081989.html

静态文件存放位置设置:

SpringBoot把类路径下的/static,/public,/resources和META-INF/resources文件下的静态文件映射为/,可以通过http://localhost:8080/访问 

SpringBoot默认了静态文件的位置src/main/resources下的static目录,如下图: 

static目录需要自己创建。HTML也可以放在里面

(2)

异常:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package
原因:查了半天终于才stack overflow上看到了解决方案,链接如下:https://stackoverflow.com/questions/35070455/springboot-beandefinitionstoreexception-failed-to-parse-configuration-class

是因为application.java 文件不能直接放在main/java文件夹下,必须要建一个包把他放进去。

(3)springboot 

service接口类 继承自 JpaRepository会有一些默认方法,默认方法的返回值是Optional类
关于 Optional  类的说明 :http://blog.csdn.net/sun_promise/article/details/51362838

(4)
WebMvcConfigurerAdapter的用法:

http://blog.csdn.net/cloume/article/details/48439429
http://blog.csdn.net/catoop/article/details/50501706
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
        super.configurePathMatch(configurer);
        configurer.setUseSuffixPatternMatch(false);//当此参数设置为true的时候,那么/user.html,/user.aa,/user.*都能是正常访问的。
    }
}

(5)直接访问springboot的静态资源
springboot  的静态资源比如.html 和图片等,当放在/src/main/webapp 或者/src/main/resource/static 或者/src/main/resource/public 时是可以直接通过url访问的,但是/src/main/resource/templates下面的不行。
相关链接:http://blog.csdn.net/w_x_z_/article/details/55657512
(6) @Controller  与 @RestController
@Controller和@RestController的区别?

官方文档:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

例如:本来应该到success.jsp页面的,则其显示success.


2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。


     kt君的渣渣观点:
当使用@RestController在controller类上时  返回的是数据
当单独使用@Controller在controller类上时    会根据controller里面的方法的返回值去寻找页面
当使用@Controller 在controller类上并且在方法上使用了@ResponseBody  返回的是数据