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(面向切面编程)的实现机制
当需要在不改变原有代码的条件下进行改动时,
一般采取横向开发,相当于多加一层,多加一个代理类
切面的意思就是横着加一层

浙公网安备 33010602011771号