springboot的注解

声明bean的注解

注解 描述
@Component 没有明确的对应
@Service @Component的派生子类,在业务逻辑层(service层)使用
@Repository @Component的派生子类,在数据访问层(dao层)使用.
@Controller @Component的派生子类,在控制层(controller/web)层使用

注入bean的注解

注解 描述
@Inject 1、@Inject是JSR330 (Dependency Injection for Java)中的规范,需要导入javax.inject.Inject;实现注入。
2、@Inject是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Named;
3、@Inject可以作用在变量、setter方法、构造函数上
@Named @Named("XXX") 中的 XX是 Bean 的名称,所以 @Inject和 @Named结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Autowired 1、@Autowired是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入
2、@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier
3、@Autowired有个属性为required,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错
4、@Autowired可以作用在变量、setter方法、构造函数上
@Qualifier @Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Qualifier @Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。不过需要注意的是@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。
@Resource 1、@Resource是JSR250规范的实现,需要导入javax.annotation实现注入。
2、@Resource是根据名称进行自动装配的,一般会指定一个name属性3、@Resource可以作用在变量、setter方法上。

配置文件的注解

注解 描述
@Configuration 声明配置类,相等于xml配置文件
@ComponentScan (com.lifeibai) 自动扫描包及子包的所有 @Component @Service @Repository @Controller 的类,并注册为Bean
@WiselyConfiguration 组合注解 可以替代 @Configuration和@ComponentScan
@Bean 用在方法上,声明为一个bean,不写的值的话,默认bean的名称为方法名称

AOP切面编程注解

注解 描述
@Aspect 声明这是一个切面
@After @Before. @Around 定义切面,可以直接将拦截规则(切入点 PointCut)作为参数
@PointCut 专门定义拦截规则 然后在 @After @Before. @Around 中调用
@Transcational 事务处理
@Cacheable 数据缓存
@EnableAaspectJAutoProxy 开启Spring 对 这个切面(Aspect )的支持
@Target (ElementType.TYPE) 元注解,用来指定注解修饰类的那个成员 -->指定拦截规则
@Retention(RetentionPolicy.RUNTIME) 当定义的注解的@Retention为RUNTIME时,才能够通过运行时的反射机制来处理注解.-->指定拦截规则

Spring 常用配置

注解 描述
@import 导入配置类
@Scope 新建Bean的实例
@PostConstruct 在构造函数执行完之后执行
@PreDestroy 在 Bean 销毁之前执行
@ActiveProfiles 用来声明活动的 profile
@profile 为不同环境下使用不同的配置提供了支持
@Profile("dev") .......对方法名为 dev-xxxx的方法提供实例化Bean
@EnableAsync 开启异步任务的支持(多线程)
@Asyns 声明这是一个异步任务,可以在类级别 和方法级别声明.
@EnableScheduling 开启对计划任务的支持(定时器)
@Scheduled 声明这是一个计划任务 支持多种计划任务,包含 cron. fixDelay fixRate
@Scheduled (dixedDelay = 5000) 通过注解 定时更新
@Conditional 条件注解,根据满足某一特定条件创建一个特定的Bean
@WebAppCofiguration 指定加载 ApplicationContext是一个WebApplicationContext
@ContextConfiguration 加载配置文件@ContextConfiguration(classes = {TestConfig.class})@ContextConfiguration用来加载ApplicationContext classes属性用来加载配置类
@Value 放置在字段、方法和方法/构造函数参数上,以指定默认值。

 

@Value("字符串") -->注入字符串
@Vaule("#{systemProperties['os.name']}")-->注入操作系统属性
@Value ("#{ T (java.lang.Math).random()  * 100.0 }") --> 注入表达式结果  @Value ("#{demoService.another}") --> 注入其他Bean属性  @Value ( "classpath:com/wisely/highlight_spring4/ch2/el/test.txt" )     注入文件资源  @Value ("http://www.baidu.com")-->注入网址资源  @Value ("${book.name}" ) --> 注入配置文件  注意: 使用的是$ 而不是 # 

 

@Enable*注解

注解描述
@EnableAsync开启异步任务的支持(多线程)
@EnableScheduling开启对计划任务的支持(定时器)
@EnableWebMVC开启对Web MVC 的配置支持
@EnableAaspectJAutoProxy开启Spring 对 这个切面(Aspect )的支持
@EnableConfigurationProperties开启对@ConfigurationProperties注解配置Bean的支持
@EnableJpaRepositories开启对Spring Data JAP Repository 的支持
@EnableTransactionManagement开启对注解式事物的支持
@EnableCaching开启注解是缓存的支持.
@EnableDiscoveryClient让服务发现服务器,使用服务器.Spring cloud 实现服务发现
@EnableEurekaServer注册服务器 spring cloud 实现服务注册
@EnableScheduling让spring可以进行任务调度,功能类似于spring.xml文件中的命名空间
@EnableCaching开启Cache缓存支持

springboot注解

 

注解 描述
@SpringBootConfiguration 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。
@EnableAutoConfiguration 自动配置
@ComponentScan 让spring Boot扫描到Configuration类并把它加入到程序上下文
@PropertySource 是spring3.1开始引入的基于java config的注解。
通过@PropertySource注解将properties配置文件中的值存储到Spring的 Environment中,Environment接口提供方法去读取配置文件中的值,参数是properties文件中定义的key值。
@ConditionalOnBean 当容器里面有指定的 Bean 的条件下
@ConditionalOnClass 当类路径下有指定的类的条件下
@ConditionalOnExpression 基于SpEL表达式作为判断条件
@ConditionalOnJava 基于JVM版本作为判断条件
@ConditionalOnJndi 在JNDI存在的条件下查找指定的位置
@ConditionalOnMissingBean 当容器里没有指定的 Bean 的情况加
@ConditionalOnMissingClass 当类路径下没有指定的类的条件下
@ConditionalOnNotWebApplication 当前项目不是web项目的条件下
@ConditionalOnProperty 指定的属性是否具有指定的值
@ConditionalOnResourcce 类路径下是否有指定的值

发表评论

登录后才能评论
关注我们