网站推广要具备什么,好公司网站建设,做网站买域名怎么弄,网站提示未备案注意点#xff1a; p命名和c命名空间不能直接使用#xff0c;需要导入xml约束#xff01;
xmlns:phttp://www.springframework.org/schema/p
xmlns:chttp://www.springframework.org/schema/c使用注解实现自动装配
jdk1.5 支持的注解#xff0c;…注意点 p命名和c命名空间不能直接使用需要导入xml约束
xmlns:phttp://www.springframework.org/schema/p
xmlns:chttp://www.springframework.org/schema/c使用注解实现自动装配
jdk1.5 支持的注解spring2.5 就支持注解了
The introduction of annotation-based configuration raised the question of whether this approach is “better” than XML.
要使用注解须知
1.导入约束context约束
2.配置注解的支持context:annotation-config/
Autowired
直接在属性上使用即可
使用Autowired我们可以不用编写Set方法了前提是你这个自动装配的属性在IOC(spring) 容器中存在符合我们的名字byName。
如果Autowired自动装配的韩静比较复杂自动装配无法通过一个注解完成的时候我们使用Qualifier(value“xxx”)去装配Autowired的使用指定一个唯一的。
Component组件放在类上说明这个类被Spring管理了就是Bean
小结
Resource和Autowired的区别
1.都是用来自动装配的都可以防砸属性字段上
2.Autowired 通过byname的方式实现而且必须要求这个对象存在
3.Resourece 默认通过byname的方式实现如果找不到哦啊名字则通过byType实现如果两个都找不到的情况下就报错
4.一个是java注解一个是spring注解
5.执行顺序不同Autowired 通过byname的方式实现
使用srping注解开发
1.在使用spring4之后要使用注解开发必须要保证导入aop的包导入
使用注解需要导入context约束增加注解的支持
2.属性如何注入
3.衍生的注解
Component有几个衍生注解我们在web开发中会按照mvc三层架构分层
1dao {Repository}
2service{service}
3controller{Controller}
这四个注解功能都是一样的都是代表将某个类注册到Spring中装配Bean
4.自动装配
Autowired自动装配通过类型、名字
Nullable 字段标记这个注解说明这个字段可以为null
Resource自动装配通过名字、类型5.作用域
Scope(“singleton”)
6.小结
xml与注解
1.xml更加万能适用于任何场合
2.注解不是每个类使用不了维护相对复杂
xml与注解最佳实践:
xml用来管理bean
注解只负责完成属性的注入 !--固定要扫描的包这个注解包下的注解就回生效--context:component-scan base-packagecom.gwl /context:component-scancontext:annotation-config/Spring的优点
1.Spring是一个开源的免费的框架容器
2.Spring是一个轻量级的非入侵式的框架
3.控制反转(IOC),面向切面编程AOP
4.支持事务的处理对框架整合的支持
总结一句话Spring就是一个轻量级的控制反转IOC和面向切面编程AOP的框架
使用Java的方式配置Spring
我们现在完全不适用Spring的xml配置了全全交给Java来做
JavaConfig 是Spring的一个子项目在Spring4之后它成为了一个核心功能
10、代理模式
为什么要学习代理模式因为这就是SpringAOP的底层【SpringAOP和SpringMVC】
代理模式的分类
1.静态代理 2.动态代理
10.1 静态代理
角色分析
1.抽象角色一般会使用接口或者抽象类来解决
2.真实角色:被代理的角色
3.代理角色代理真实角色代理站务室角色后我们一般会做一些负数操作
4.客户访问代理对象的人
代码步骤
1.接口
2.真实角色
3.代理角色
4.客户端访问代理角色
代理模式的好处
1.可以使真实角色的操作更加纯粹不用去关注一些公共业务
2.公共也就是交给代理角色驶向了业务的分工
3.公共业务发生扩展的时候方便集中管理
缺点:
1.一个真实角色就会产生一个代理角色代码量会翻倍-开发效率会变低。
10.2动态代理
动态代理和静态代理角色一样
动态代理的代理类是动态生成的不是我们直接写好的
动态代理分为两大类基于接口的动态代理基于类的动态代理
基于接口-------JDK动态代理【我们在这里使用】
基于类Cglib
Java字节实现javasist
需要了解连个类Proxy 代理InvocationHandler 调用处理程序
10.3 AOP实现方式一
横切关注点跨越应用程序多个木块的方法或功能即是与我们业务逻辑无关的但是我们需要关注的部分就是横切关注点如日志安全缓存事务等等…
切面(ASPECT):横切关注点 被木块华的特殊对象即它是一个类。
通知(Advice):切面必须要完成的工作即它是类中的一个方法。
目标(Target):被通知对象。
代理(Proxy):向目标对象应用通知之后创建的对象。
切入点(PointCut)切面通知执行的“地点”的定义。
连接点(JointPoint):与切入点匹配的执行点。
10.4 aop实现方式二
10.5 aop实现方式三注解实现
11、声明事务
事务ACID原则
原子性 一致性 隔离性 (多个业务可能操作同一个资源防止数据损坏)
持久性(事务一点提交无论系统发生什么问题结果都不会再被影响被持久化地写到存储器中)