之前使用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。
@
SpringBootApplication
= (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan
@
Configuration
:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。
@
EnableAutoConfiguration
:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
@
ComponentScan
:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
@
ServletComponentScan
注解加上后拦截器失效 去掉后 过滤器和监听器失效,一般类中写的都是main方法。
@
Import
(CDConfig.class) //导入CDConfig的配置文件
@
ImportResource
("classpath:cons-injec.xml") //导入xml配置项
@
PropertySource
(
"classpath:config.properties"
) //导入properties文件
@
EnableAsync
可以异步执行,就是开启多线程的意思。可以标注在方法、类上。为了让
@Async
注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsync,@Async所修饰的函数不要定义为static类型,这样异步调用不会生效。
@
WebFilter
serclet3.0的新特性,用于声明一个类为过滤器该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器
value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值
@
value 需要参数。这里参数可以是两种形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}");
spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。
@
GetMapping
是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
同样一个方法实现,用@get定义和@post定义,@get能通过测试,而@post不能