SpringBoot构建微服务实战 之 @Enable*
本节我们将学一下SpringBoot 的@Enable* 注解。
SpringBoot 的@Enable* 的目的在于起因Spring的某一个特性,这一个特性可以是Spring自有的,也可以是我们自定义的。本节我们将详细学习一下启用 spring 自有的 @Enbale* 特性。
分类
Spring自生提供的 @Eable* 注解:
常用的@Enbale 注解说明:
@EnableAspectJAutoProxy:表示开启AOP代理自动配置,如果配@EnableAspectJAutoProxy表示使用cglib进行代理对象的生成;设置@EnableAspectJAutoProxy(exposeProxy=true)表示通过aop框架暴露该代理对象,aopContext能够访问。
@EnableAsync:@EnableAsync注解开启异步方法的支持。参考文章
@EnableScheduling:@EnableScheduling注解开启计划任务的支持。参考文章
@EnableWebMVC:@EnableWebMVC注解用来开启Web MVC的配置支持。
@EnableConfigurationProperties:@EnableConfigurationProperties注解是用来开启对@ConfigurationProperties注解配置Bean的支持。
@EnableJpaRepositories:@EnableJpaRepositories注解开启对Spring Data JPA Repostory的支持。Spring Data JPA 框架,主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!
@EnableCaching:@EnableCaching注解开启注解式的缓存支持
- …
通过这些简单的@Enable*可以开启一项功能的支持,从而避免自己配置大量的代码,很大程度上降低了使用难度。
实例
下面我们着重讲解三个 @Enable* 注解功能。
@EnableConfigurationProperties
在默认配置文件(application.properties)中配置:
condition.onPropertyCondition=true tomcat.host=192.168.100.19 tomcat.port=8080
EnableConfigurationProperty.java
package com.springBoot.entrance.enableAnnotation; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; /** *使用@EnableConfigurationProperties 可以将SpringBoot读取的配置文件中的属性注入到某个实体中 *该实体的所有字段应和配置文件中的保持一致 */ @Component @ConfigurationProperties(prefix ="tomcat") @EnableConfigurationProperties public class EnableConfigurationProperty { private String host; private Integer port; public String getHost() {