首页 > 编程语言 > 详细

Spring(三) 注解开发的三个问题

时间:2021-02-24 10:10:51      阅读:33      评论:0      收藏:0      [点我收藏+]

怎么开启注解装配

<!--开启注解扫描-->
<context:component-scan base-package="com.jiang">
    <!--根据注解排除扫描-->
    <!--<context:exclude-filter type="annotation" 
		expression="org.springframework.stereotype.Controller"/>-->
    <!--根据类名排除扫描-->
    <!--<context:exclude-filter type="assignable" 
  		expression="com.jiang.controller.UserController"/>-->
    <!--根据正则表达式(regex),切面(aspectj),自己实现一个类(custom),比较少用-->
    <!--同理可以根据注解,类名,正则表达式,切面,自己实现一个类来包含扫描-->
    <!--<context:include-filter type="annotation" 
		expression="org.springframework.stereotype.Controller"/>-->
</context:component-scan>

@Controller,@Service,@Repository,@Component有什么区别

  1. 都是将自定义的bean对象添加到IOC容器中
  2. @Controller:控制器,推荐给controller层添加此注解
  3. @Service:业务逻辑,推荐给业务逻辑层添加此注解
  4. @Repository:仓库管理,推荐给数据访问层添加此注解
  5. @Component:给不属于以上基层的组件添加此注解
  6. 注意:我们虽然人为的给不同的层添加不同的注解,但是在spring看来,可以在任意层添 加任意注解, spring底层是不会给具体的层次验证注解,这样写的目的只是为了提高可读性还有可以方便管理,最偷懒的 方式

当使用@Autowired匹配到多个类型怎么解决

使用@Autowired来实现自动注入
·默认优先根据类型去匹配
·如果匹配到多个类型则会按照名字匹配
·如果名又没有匹配到则会报错:

  1. 可以去修改属性的名字对应bean的名字:userServiceImpl
  2. 可以去修改Bean的名字对应属性的名字:@Service("userService")
  3. 可以通过@Qualifier设置属性的名字(覆盖) :@Qalifier("userServiceImpl")
  4. 设置其中一个Bean为主要的自动注入Bean:@Primary
  5. 使用泛型作为自动注入限定符

Spring(三) 注解开发的三个问题

原文:https://www.cnblogs.com/jqccan/p/14439010.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!