注解解析
@Controller
: 修饰创建处理 http 处理对象,一般用于页面渲染时使用。一般返回页面视图用@Controller@RestController
: Json数据交互; 相当于@Controller中配置@responsebody来返回 Json数据。一般用来返回json数据。@RequestMapping
: 配置映射URL。
@Controller与@RestController区别
官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller。
谷歌翻译:@RestController是一个构造型注释,结合了@ResponseBody和@Controller。
1)使用@RestController注解Controller,配置的视图解析器不起作用,返回的是Json数据。
(JSON、XML或自定义mediaType内容)
2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器。
@RequestMapping的属性说明
value:指定请求的实际地址。(value的uri值为三类:具体值、含有某变量的一类值、含正则表达式的一类值)。
method:指定请求的method类型, GET、POST、PUT、DELETE等。
consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html。
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
@PostConstruct说明
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的inti()方法。
被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
@PreConstruct说明
被@PreConstruct修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方 法。
被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
@ConfigurationProperties说明
方法会在它可以把同类的配置信息自动封装成实体类
@ConditionalOnProperty
用来控制配置文件是否生效作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中 读取某个属性值,如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回 true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效。