spring及spring boot常用注解
一、spring常用注解1.1 声明bean的注解Component 组件没有明确的角色Service 在业务逻辑层使用service层Repository 在数据访问层使用dao层Controller 在展现层使用控制器的声明C1.2 注入bean的注解Autowired由Spring提供Inject由JSR-330提供Resource由JSR-250提供都可以注解在set方法和属性上推荐注解在属性上一目了然少写代码。1.3 java配置类相关注解Configuration 声明当前类为配置类相当于xml形式的Spring配置类上Bean 注解在方法上声明当前方法的返回值为一个bean替代xml中的方式方法上Configuration 声明当前类为配置类其中内部组合了Component注解表明这个类是一个bean类上ComponentScan 用于对Component进行扫描相当于xml中的类上WishlyConfiguration 为Configuration与ComponentScan的组合注解可以替代这两个注解1.4 切面AOP相关注解Spring支持AspectJ的注解式切面编程。Aspect 声明一个切面类上使用After、Before、Around定义建言advice可直接将拦截规则切点作为参数。After 在方法执行之后执行方法上Before 在方法执行之前执行方法上Around 在方法执行之前与之后执行方法上PointCut 声明切点在java配置类中使用EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持类上1.5 Bean的属性支持Scope 设置Spring容器如何新建Bean实例方法上得有Bean其设置类型包括Singleton 单例,一个Spring容器中只有一个bean实例默认模式,Protetype 每次调用新建一个bean,Request web项目中给每个http request新建一个bean,Session web项目中给每个http session新建一个bean,GlobalSession给每一个 global http session新建一个Bean实例StepScope 在Spring Batch中还有涉及PostConstruct 由JSR-250提供在构造函数执行完之后执行等价于xml配置文件中bean的initMethodPreDestory 由JSR-250提供在Bean销毁之前执行等价于xml配置文件中bean的destroyMethod1.6 Value注解Value 为属性注入值属性上1.7 环境切换Profile 通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境。类或方法上Conditional Spring4中可以使用此注解定义条件话的bean通过实现Condition接口并重写matches方法从而决定该bean是否被实例化。方法上1.8 异步相关EnableAsync 配置类中通过此注解开启对异步任务的支持叙事性AsyncConfigurer接口类上Async 在实际执行的bean方法使用该注解来申明其是一个异步任务方法上或类上所有的方法都将异步需要EnableAsync开启异步任务1.9 定时任务相关EnableScheduling 在配置类上使用开启计划任务的支持类上Scheduled 来申明这是一个任务包括cron,fixDelay,fixRate等类型方法上需先开启计划任务的支持1.10 Enable*注解说明这些注解主要用来开启对xxx的支持。EnableAspectJAutoProxy 开启对AspectJ自动代理的支持EnableAsync 开启异步方法的支持EnableScheduling 开启计划任务的支持EnableWebMvc 开启Web MVC的配置支持EnableConfigurationProperties 开启对ConfigurationProperties注解配置Bean的支持EnableJpaRepositories 开启对SpringData JPA Repository的支持EnableTransactionManagement 开启注解式事务的支持EnableTransactionManagement 开启注解式事务的支持EnableCaching 开启注解式的缓存支持1.11 测试相关注解RunWith 运行器Spring中通常用于对JUnit的支持ContextConfiguration 用来加载配置ApplicationContext其中classes属性用来加载配置类二、springMvc部分EnableWebMvc 在配置类中开启Web MVC的配置支持如一些ViewResolver或者MessageConverter等若无此句重写WebMvcConfigurerAdapter方法用于对SpringMVC的配置。Controller 声明该类为SpringMVC中的ControllerRequestMapping 用于映射Web请求包括访问路径和参数类或方法上ResponseBody 支持将返回值放在response内而不是一个页面通常用户返回json数据返回值旁或方法上RequestBody 允许request的参数在request体中而不是在直接连接在地址后面。放在参数前PathVariable 用于接收路径参数比如RequestMapping(“/hello/{name}”)申明的路径将注解放在参数中前即可获取该值通常作为Restful的接口实现方法。RestController 该注解为一个组合注解相当于Controller和ResponseBody的组合注解在类上意味着该Controller的所有方法都默认加上了ResponseBody。ControllerAdvice 通过该注解我们可以将对于控制器的全局配置放置在同一个位置注解了Controller的类的方法可使用ExceptionHandler、InitBinder、ModelAttribute注解到方法上这对所有注解了 RequestMapping的控制器内的方法有效。ExceptionHandler 用于全局处理控制器里的异常InitBinder 用来设置WebDataBinderWebDataBinder用来自动绑定前台请求参数到Model中。ModelAttribute 本来的作用是绑定键值对到Model里在ControllerAdvice中是让全局的RequestMapping都能获得在此处设置的键值对。三、springboot常用注解介绍Configuration # 作用于类上相当于一个 xml 配置文件Bean # 作用于方法上相当于 xml 配置中的SpringBootApplication # Spring Boot的核心注解是一个组合注解用于启动类上EnableAutoConfiguration # 启用自动配置允许加载第三方 Jar 包的配置ComponentScan # 默认扫描 SpringBootApplication 所在类的同级目录以及它的子目录PropertySource # 加载 properties 文件Value # 将配置文件的属性注入到 Bean 中特定的成员变量EnableConfigurationProperties # 开启一个特性让配置文件的属性可以注入到 Bean 中与ConfigurationProperties 结合使用ConfigurationProperties # 关联配置文件中的属性到 Bean 中Import # 加载指定 Class 文件其生命周期被 Spring 管理ImportResource # 加载 xml 文件