springboot的注解

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> springboot的注解

文章大部分来源https://blog.csdn.net/weixin_41662670/article/details/79649899

声明bean的注解

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

注入bean的注解

注解描述 |------ @Inject1、@Inject是JSR330 (Dependency Injection for Java)中的规范,需要导入javax.inject.Inject;实现注入。2、@Inject是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Named;3、@Inject可以作用在变量、setter方法、构造函数上 @Named@Named("XXX") 中的 XX是 Bean 的名称,所以 @Inject和 @Named结合使用时,自动注入的策略就从 byType 转变成 byName 了。 @Autowired1、@Autowired是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入2、@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier3、@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 的标注对象是成员变量、方法入参、构造函数入参。 @Resource1、@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类路径下是否有指定的值

spirngmvc注解,请查看之前的文章~

文章如有错误,请您一定指出,感谢之至!
如果你有不同的见解,欢迎留言
图片可能来源于网络,如有侵权请告知。
文章中的资料有时忘记书写来源,如果需求请告知
最后:关注一下呗

长按二维码识别关注

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> springboot的注解


  转载请注明: 好好学java springboot的注解

 上一篇
SpringBoot获取自定义参数 SpringBoot获取自定义参数
author:阿风/Alan 公众号:阿风的JAVA 无论是properties格式还是yml的配置文件格式,其获取参数是一样的 yml的格式语法请参考http://www.ruanyifeng.com/blog/2016/07/ya
下一篇 
【加精】SpringBoot启动类SpringApplication解析 【加精】SpringBoot启动类SpringApplication解析
SpringBoot提供了内嵌Servlet容器并且提供了非常简单的应用启动方式-SpringApplication#run() 在任意的main方法中使用SpringApplication#run()即可完成应用的引导和启动.那么接下来为