文章大部分来源https://blog.csdn.net/weixin_41662670/article/details/79649899
声明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是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@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 的标注对象是成员变量、方法入参、构造函数入参。 |
@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 | 类路径下是否有指定的值 |
spirngmvc注解,请查看之前的文章~
文章如有错误,请您一定指出,感谢之至!
如果你有不同的见解,欢迎留言
图片可能来源于网络,如有侵权请告知。
文章中的资料有时忘记书写来源,如果需求请告知
最后:关注一下呗
长按二维码识别关注