Spring入门——day3

一 . 使用注解开发(在类中就把 Bean 的注入搞定了,只需要在 applicationContext 导入注解,指定扫描的路径,就不用写bean了)

  1 . 使用前的准备:

          

 

 

 

  2 . 注解 注入属性:

          

 

 

 

  3 . 衍生的注解:

    1 . @Component 有几个衍生的注解,在 web 开发中,会按照MVC三层架构分层:

            在不同层的规范写法不同,但是功能全部都相同,都负责将类注册到Spring中,装配类

            dao:  @Repository (仓库)

            service:  @Service

            contoller:@Controller

 

  4 . 自动装配的注解:

    -@Resource:Java 自己的注解, 默认通过 byName实现,

            如果找不到名字,则通过 byType 实现

    -@Autowired:Spring 的注解, 默认通过 byType实现,如果找不到,可以通过追加 @Qualifier注解按照 byName 实现

    -@Component:意为组件,放在类的上边,说明这个类被Spring管理,自动注册为bean,引用时默认为类名小写

 

  5 . 作用域:Scope,括号中直接选择类型

    

 

 

  6 . 总结:

    xml 感觉更万能,维护方便,

    注解 如果不是自己的类就 无法使用,遇到多人共同开发使用多个配置文件时无法操作,维护相对复杂

  7 . 最好的配合方式:

    XML 用于管理 Bean,

    注解 用于属性的注入

  

 

二 . 使用 Java 的方式配置 Spring,代替 XML

  1 . 实体类:

      

 

  2 . 配置文件:

      

 

 

   3 . 测试类:

      

 

 

 三 . 代理模式

  1 . 静态代理:

      优点:各个对象无需包含公共的业务,只需要负责好自己的工作  ,将公共业务交给了代理

           公共业务发生变动时,直接修改代理即可,方便集中管理

      缺点:代码量会翻倍,效率下降

 

  2 . 动态代理:

      动态代理的代理类是自动生成的,不像静态代理那种直接写好的

      分为:

          1 . 基于接口---JDK动态代理(我们使用的)

          2 . 基于类:cglib

          3 . Java 字节码:javassist 

      

 

    

补充 : AOP(面向切面编程)的实现机制 

  当需要在不改变原有代码的条件下进行改动时,

  一般采取横向开发,相当于多加一层,多加一个代理类

  切面的意思就是横着加一层

   

 

 

    

  

    

posted @ 2022-03-07 11:06  TRUENO-86  阅读(29)  评论(0)    收藏  举报