Spring注解大全

未完,仍会继续更新

@Component @Controller @Service @Repository
这四个注解是用来声明Bean的,声明后这些Bean将被实例化
@Value
当属性的类型是简单类型时,可以使用@Value注解进行注入
@Autowired
注解可以用来注入非简单类型。被翻译为:自动装配。
单独使用@Autowired注解,默认根据类型装配。【默认是byType】
注意:该注解有一个required属性,默认值是true,表示在注入的时候要求被注入的Bean必须是存在的,
如果不存在则报错。如果required属性设置为false,表示注入的Bean存在或者不存在都没关系,
存在的话就注入,不存在的话,也不报错。

● @Autowired注解可以出现在:属性上、构造方法上、构造方法的参数上、setter方法上。
● 当带参数的构造方法只有一个,@Autowired注解可以省略。
● @Autowired注解默认根据类型注入。如果要根据名称注入的话,需要配合@Qualifier注解一起使用。

@Resource
@Resource注解也可以完成非简单类型注入。那它和@Autowired注解有什么区别?
● @Resource注解是JDK扩展包中的,也就是说属于JDK的一部分。所以该注解是标准注解,更加具有通用性。(JSR-250标准中制定的注解类型。JSR是Java规范提案。)
● @Autowired注解是Spring框架自己的。
● @Resource注解默认根据名称装配byName,未指定name时,使用属性名作为name。通过name找不到的话会自动启动通过类型byType装配。
● @Autowired注解默认根据类型装配byType,如果想根据名称装配,需要配合@Qualifier注解一起用。
● @Resource注解用在属性上、setter方法上。
● @Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。
@Resource注解属于JDK扩展包,所以不在JDK当中,需要额外引入以下依赖:【如果是JDK8的话不需要额外引入依赖。高于JDK11或低于JDK8需要引入以下依赖。】
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>2.1.1</version>
</dependency>

spring5及以下版本用这个依赖
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>

@Resource注解:默认byName注入,没有指定name时把属性名当做name,根据name找不到时,
才会byType注入。byType注入时,某种类型的Bean只能有一个。

@Configuration
相当于Spring的 .xml 配置文件,
用了这个注解后,在test测试程序中要这么写

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Spring6Configuration.class);
UserService userService = applicationContext.getBean("beanName",ClassName.class);

@ComponentScan("包名")
扫描组件,相当于 .xml 文件当中的 <context:component-scan base-package="">

@EnableAspectJAutoProxy(proxyTargetClass = true) //启动AspectJ的自动代理机制

@Transactional 是spring声明式事务管理 编程中使用的注解

注意:@Transactional 可以添加到业务方法上表示当前方法开启事务,也可以添加到 接口实现类 上表示当前类中所有方法开启事务

@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里

详见:http://t.csdn.cn/AM28g

定义bean

下面是@Configuration里的一个例子

@Configuration
public class AppConfig {
 
    @Bean
    public TransferService transferService() {
        return new TransferServiceImpl();
    }
 
}

这个配置就等同于之前在xml里的配置

<beans>
    <bean id="transferService" class="com.acme.TransferServiceImpl"/>
</beans>

@EnableTransactionManagement //开启事务管理驱动 用于 配置类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值