Spring知识点学习(6):一些常用注解的使用

GitHub地址:https://github.com/SirLiuGang/Spring/tree/master/spring-annotation/src/main/java/com/cn/lg/annotation
这个基本没什么代码,还是以记录和介绍使用为主

@Resource与@Autowired 属性注入

注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。

@Resource是Java自己的注解,默认使用byName自动注入策略。
@Autowired是spring的注解,是spring2.5版本引入的,只根据type进行注入。

如果一个类有两个实现类,那么两个注解的使用方式也不同:

-- 通过name属性来指定bean
@Resource(name="catService")
public IAnimalService catService;
-- 通过Qualifier注解来指定bean
@Autowired   
@Qualifier("dogService")
public IAnimalService dogService;

@Transactional 声明式事务

  1. 使用在类、接口、方法上边(声明到接口上可以被继承,方法上不可被继承)
  2. 方法需要为public
  3. 方法中的异常需要进行抛出
  4. 方法上的注解会覆盖类上边的注解
增加依赖包:
	<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
    </dependencies>

个人经验,开发一般这么使用:

	@Transactional(rollbackFor = Exception.class)
    public void save() {

    }
  1. 在类上边添加注解。如果在类上边添加,则该类的所有方法会被事务包含,其实像一些查询之类的操作没必要包含在事务中,所以在自己需要的方法上边添加注解。
  2. rollbackFor = Exception.class,由于Exception是所有异常的的父类,所以不管抛出了什么异常,统一进行回滚。
  3. 剩下的一般采用默认设置

@Controller 、@Service、@Repository 、@Component

  1. @Controller
    用于标注控制层,即action层
  2. @Service
    平时使用的UserServiceImpl、UserDaoImpl都属于Service,在上边使用Service注解进行自动注册到Spring容器。不需要再在applicationContext.xml文件定义bean了。
    比如下边的类:
@Service("userService")
public class UserServceImpl {
}

其作用就相当于applicationContext.xml文件里面的:

<bean id="courseDAO" class="com.hzhi.course.dao.CourseDAOImpl"/>

一般Service中可以定义当前bean的名字,这样在使用@Resource注解时可以指定注入的beanName,如上边的@Resource(name=“userService”)

  1. @Repository

  2. @Component

待补充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘了了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值