Spring常用注解笔记

今天看一篇技术博客,看到注解@transactional,一时想不起来是什么意思以及用法,记得之前百度过,但是用得少,记得不深。所以搜集了一些资料,决定写一篇关于Spring常用注解的博,再巩固相关知识。


一、Spring配置:注解配置和XML配置

注解配置:使用注解向Spring容器注册Bean。准备工作:在applicationContext.xml中进行注册,并指明Bean所在的包:

	<context:component-scan base-package="com.spms"/>
以上配置表名,包com.spms及其子包中,如果某个类头上带有特定的注解@Component/@Controller/@Service/@Repository,就会将这个动作作为Bean注册进Spring容器。

二、Spring常用注解

1、@Component

所有受Spring管理的组件的通用形式,当不明确当前的类属于哪一层、该用什么组件的时候,可以用@Component组件代替。这个组件用的较少。

2、@Controller

对应表现层的Bean,也就是Action。使用@Controller标注一个类之后,就把该类交给Spring容器管理,在Spring容器中会存在一个以该类的名字(首字母改为小写)命名的action,若指定该action的名字@Controller(value="aa")或者@Controller("aa"),则用aa命名。一般与@Scope一起使用:

	   @Controller
	@Scope("prototype")
表示将Action的范围声明为原型,保证每一个请求有一个单独的Action来处理,避免了线程安全问题。Spring默认是单例模式,即"singleton",这样只会创建一个Action对象,每次访问的都是同一个Action对象,数据不安全。

3、@Service

对应的是业务层Bean

	     // 注入userService
	@Resource(name = "userService")
	private UserService userService;
Spring根据@Resource以及其指明的name去将相应的实例注入到这个Action中,帮助其实例化。这里将new一个实例的权限交给Spring,而自己不用管,控制权的转移,即“控制反转”,又称为依赖注入。

4、@Repository

对应数据访问层Bean。用法与@Service类似。

5、@RequestMapping

是一个用来处理请求地址映射的注解,可用于类或方法上。有六个属性:

(1)value:用法如下图所示,用value的值作为访问该类的路径;

	      @Controller
	@RequestMapping(value = "/bulletin")
	public class BulletinController {......}

(2)method:有POST,GET等;

(3)consumes:指定请求的类型,如application/json, text/html;

(4)produce ; (5)params:指定request中必须包含某些参数值时,才让该方法处理;(6)headers;

6、@RequestParam

把请求参数传递给请求方法,

	@RequestMapping(value = "/findByID")
	public ModelAndView bulletin(@RequestParam(value = "bulID" ) Integer bulID,HttpServl		etRequest request){......}

上述代码表示,将jsp页面中的值为“bulID”的变量传到bulletin方法中,并赋值给变量bulID。

@RequestParam(value="xx",required=false)此时表名这个参数不是必须要的。当没有设置required为false,而jsp中有没有提供这个参数时,会报错。

7、@Transactional

先了解什么是事务管理:

(1)对于一系列数据库操作进行管理。

(2)一个事务包含一个或多个SQL语句,是逻辑管理的工作单元(原子单元)。

(3)一个事务开始于第一次执行的SQL语句,结束于Commit 或Rollback或DDL语句。

Spring Framework对事务管理提供了一致的抽象,其特点如下:

  • 为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects)
  • 支持声明式事务管理,特别是基于注解的声明式事务管理,简单易用
  • 提供比其他事务API如JTA更简单的编程式事务管理API
  • 与spring数据访问抽象的完美集成

Spring支持编程式事务管理和声明式事务管理。其中,声明式事务管理只需在配置文件中做相关的事务规则说明,

过通过@Transactional注解的方式,便可以将事务规则应用到业务逻辑中。

通过使用@Transactional,事务传播等很多重要任务可以自动处理。


目前就写这么多,如果碰到其它常见注解,再加上来。。。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值