Spring常用注解

目录

一、项目中注解和XML选择问题

二、用于创建对象的注解

三、用于注入数据的注解

 四、 用于改变作用范围的注解

五、新注解说明

六、其他注解

 dubbo注解

@Transactional 


一、项目中注解和XML选择问题

学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的功能都是一
样的,都是要降低程序间的耦合。只是配置的形式不一样。
关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯 , 所以这两种配置方式我们都需
要掌
握。
注解的优势: 配置简单,维护方便(我们找到类,就相当于找到了对应的配置)。
xml的优势:
修改时,不用改源码。不涉及重新编译和部署。

二、用于创建对象的注解

@Component,@Repository,@Service,@Controller

注解说明
@Component使用在类上用于实例化Bean
@Controller使用在web层类上用于实例化Bean
@Service使用在service层类上用于实例化Bean
@Repository使用在dao层类上用于实例化Bean


三、用于注入数据的注解

@Value,@Resource,@Autowrited,@Qualifier

注解说明
@Value注入普通属性
@Autowrited自动按照类型注入。当使用注解注入属性时,set 方法可以省略。它只能注入其他
bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,
在 spring 容器查找,找到了也可以注入成功。找不到就报错
@Qualifier结合@Autowired一起使用用于根据名称进行依赖注入
@Resource相当于@Autowired+@Qualifier,按照名称进行注入

 四、 用于改变作用范围的注解

注解说明
@Scope标注Bean的作用范围,scope取值singleton prototype request session
globalsession

五、新注解说明

@Configuration,@ComponentScan,@Import, @Bean, @PropertySource

注解说明
@Configuration用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解
@ComponentScan用于指定 Spring在初始化容器时要扫描的包。 作用和在 Spring 的 xml 配
置文件中的 <context:component-scan base-package="com.offcn"/>一
@Bean使用在方法上,标注将该方法的返回值存储到 Spring容器中
@PropertySource用于加载xxx.properties 文件中的配置
@Import用于导入其他配置类

六、其他注解

注解说明

@PostConstruct

该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

@JsonProperty

注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)

@NotNull(message = "订单ID不能为空")

判空(值不能为空)

@SneakyThrows

注解是由lombok为咱们封装的,它能够为咱们的代码生成一个try...catch块,并把异常向上抛出来

@CrossOrigin

跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授权,而不是使用一些不太安全和不太强大的策略,如IFRAME或JSONP。

@SuppressWarnings

注解是jse提供的注解。作用是屏蔽一些无关紧要的警告。使开发者能看到一些他们真正关心的警告。从而提高开发者的效率

 dubbo注解

注解说明
@Reference注入的是分布式中的远程服务对象

@Transactional 

该注解的属性和 xml 中的属性含义一致。该注解可以出现在接口上,类上和方法上。
出现接口上,表示该接口的所有实现类都有事务支持。
出现在类上,表示类中所有方法有事务支持
出现在方法上,表示方法有事务支持。
以上三个位置的优先级:方法>类>接口

 

1) 事务开始时,通过AOP机制,生成一个代理connection对象,

并将其放入 DataSource 实例的某个与 DataSourceTransactionManager 相关的某处容器中。

在接下来的整个事务中,客户代码都应该使用该 connection 连接数据库,

执行所有数据库命令。

[不使用该 connection 连接数据库执行的数据库命令,在本事务回滚的时候得不到回滚]

(物理连接 connection 逻辑上新建一个会话session;

DataSource 与 TransactionManager 配置相同的数据源)

2) 事务结束时,回滚在第1步骤中得到的代理 connection 对象上执行的数据库命令,

然后关闭该代理 connection 对象。

(事务结束后,回滚操作不会对已执行完毕的SQL操作命令起作用)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚上真睡不着

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值