ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring注解介绍

2021-10-16 11:58:12  阅读:170  来源: 互联网

标签:事务 Spring 介绍 propagation Bean 当前 注解


Spring常用注解

Spring常用注解
Spring的核心功能是IOC,就是将Bean初始化加载到容器中·,可以使用xml配置文件或者Spring注解来实现

Spring注解方式减少了配置文件内容,使其便于管理,提高了开发效率

组件类注解
@Component:标注一个普通的Spring Bean类。
@Repository:标注一个DAO组件类
@Service:标注一个业务逻辑组件类
@Controller:标注一个控制器组件类
@Component可以代替@Repository、 @Service、@Controller,因为这三个注解是被@Component标注的

总结
1.被注解的java类当作Bean实例,Bean实例的名称默认是Bean类的首字母小写,其他部分不变

2.尽量使用对应组件注解的类替换@Component注解

3.指定了某些类可作Spring Bean类使用后,最好还让spring搜索指定路径,在spring配置文件加入:

<!-- 自动扫描指定包及其子包下的所有Bean类 -->
<context:component-scan base-package="org.springframework.*"/>

装配bean时常用注解(有四种装配方式,no、byType、byName、construct)

@Autowired: 属于Spring 的org.springframework.beans.factory.annotation包下,可用于为类的属性、构造器、方法进行注值。

@Resource:不属于spring的注解,而是来自于JSR-250位于java.annotation包下,使用该annotation为目标bean指定协作者Bean,默认按照byName自动注入。

@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作

总结
@Resource作用相当于@Autowired,均可标注在字段或属性的setter方法上

@Resource默认按Name自动注入,可提供按Type注入,@Autowired只按Type注入

@Resource注解的使用性更为灵活,可指定名称,也可以指定类型 ;

@Autowired注解进行装配容易抛出异常,特别是装配的bean类型有多个的时候,而解决的办法是需要在增加@Qualifier进行限定

使用@Resource也要在配置文件开启注解配置 :

<context:annotation-config/>

配置类注解
@Configuration:声明当前类为配置类
@Bean:注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式

spring MVC模块注解
@Controller:表明该类会作为与前端交互的控制层组件,通过服务接口定义的提供访问应用程序的一种行为,解释用户的输入,将其转换成一个模型然后将试图呈现给用户

@RequestMapping:用于映射web请求,包括访问路径和参数

@RequestParam:将请求的参数绑定到方法中的参数上,有required,默认情况下,required=true

@PathVariable:用于方法修饰方法参数,会将修饰的方法参数变为可供使用的url变量

@ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到HTTP response body中,在输出JSON格式的数据时,会经常用到

@RestController:相当于@ResponseBody+@Controller

Spring事务模块注解(@Transactional)
在处理dao层或service曾的事务操作时,如增删改操作
在配置文件中开启:

<tx:annotation-driven transaction-manager="transactionManager" />

spring事务传播特性:
事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播。spring支持7种事务传播行为:

propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是最常见的选择。

propagation_supports:支持当前事务,如果没有当前事务,就以非事务方法执行。

propagation_mandatory:使用当前事务,如果没有当前事务,就抛出异常。

propagation_required_new:新建事务,如果当前存在事务,把当前事务挂起。

propagation_not_supported:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

propagation_never:以非事务方式执行操作,如果当前事务存在则抛出异常。

propagation_nested:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与propagation_required类似的操作

Spring 默认的事务传播行为是 PROPAGATION_REQUIRED,它适合于绝大多数的情况

Spring JdbcTemplate简介

Spring框架对JDBC进行封装,使用jdbcTemlate方便实现对数据的操作,可直接在Java代码中编写sql,无需配置xml文件,提高了开发效率
缺点:
使用时频繁的创建释放连接,非常浪费资源,影响性能。且sql在直接写在java代码中怖不便于维护。
在团队开发中一般使用mybatis架构来进行开发

标签:事务,Spring,介绍,propagation,Bean,当前,注解
来源: https://blog.csdn.net/qq_45680409/article/details/120796595

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有