spring

本文介绍了如何在Spring框架中使用注解进行组件划分(如@Controller、@Service、@Repository和@Component),以及如何通过@Autowired、@Qualifier进行依赖注入。还涵盖了如何完全脱离XML配置,采用注解方式实现AOP切面编程,包括@Aspect、@Before等注解的使用。
摘要由CSDN通过智能技术生成

基于注解的方式的spring 的配置


    @Controller   -----    控制层  controller
    @Service  -----       业务层   service
    @Repository   ------   数据访问层  dao
    @Component       -------  不属于 以上3层的 都用这个 注解

    以上四个注解,如果 不指定 bean 的 id 的值 , 则 spring 在完成扫描后,
    自动为其 增加 bean 的id的值, 默认为 注解所修饰的类的类名, 但 首字母变为 小写

    @Autowired   --- 修饰 属性时 按照 类型注入  byType
    @Qualifier    ----修饰属性时 按照 名字注入  byName   , 一般配合  @Autowired 使用
    @Resource     -----修饰属性时, 既  可以byType  也可以 byName  ,
                      但 因为  @Resource 是 java 中的不是 spring 包里, 因此 spring 官方不推荐使用
                      jdk 8 有  , jdk 17 没有这个注解

    完全脱离 xml 的方式, 项目中 没有xml 文件

    a. 对dao的实现类增加注解 @Repository

    b. 对 service 的实现类 增加 注解 @Service
        同时对 属性  private DeptDao deptDao 增加 @Autowired

        (注意  属性deptDao  不需要生成 get/set)

    c.  增加 配置类     增加 @Configuration
         设置包的扫描,   增加  @ComponentScan(basePackages = {"com.dao","com.service"})


   d. 修改 测试类,  通过
      ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
      获得 上下文对象,


    新建 module -- spring2_1,
         实现  查询 所有的员工信息, 要求 使用 注解的形式 来做

   3.28  基于 注解的 aop
      User.java  print() 调用 前 执行 UserProxy.java 中的beforeInvoke()方法

   a. 引入 aop相关jar
   spring-aop.jar 与 aspectjweaver.jar

   b. 编写 com.aop.User.java  中 print()

        com.aop.UserProxy.java 中的beforeInvoke()

   因为 本项目为纯注解方式
      因此 需要为 com.aop.User.java 与com.aop.UserProxy.java
      增加 @Component  注解 ,添加到 spring 的上下文中

 c.  为 UserProxy.java 增加 @Aspect注解
       为 beforeInvoke() 增加 @Before注解 并配置表达式

 d. 编写配置类 SpringConfig.java
    增加  包扫描 com.aop,
    同时 开启 aop 动态代理 @EnableAspectJAutoProxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

射手座的程序媛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值