控制反转:控制权反转(由硬编码来创建对象实例--依赖)
对象的生命周期交给容器管理,另外依赖关系也交由容器。
依赖倒转原则:
0耦合
具体耦合:
抽象耦合:
依赖注入:构造注入、set注入、自动注入(spring IOC)
任何class都是bean
1、配置springXML配置文件,头文件
说明使用了spring的bean功能
例如用了aop,则在头部增加aop的命名空间
2、导包
shift点中第一个,再点最后一个,选中全部包
toString 复写
在实体类中快速复写一个toString方法,自动把实体类中的属性打印出来
然后在dao层调用打印order对象时,就自动调用复写过的toString方法,可以测试
实体类的数值是否已经写进去。
利用spring容器加载来动态加载数据,不用写死在实体类中。
通过配置文件的
只有一个构造方法是首字母大写的。
多例是为了多线程,单例并发会产生脏数据,线程不安全
专门扫描com.demo.service包里的类,并且得在对应的类里面加上@Service或者@Component
Aop
系统级关注点,经常使用的代码,在整个项目中经常出现(日志,事务支持、异常处理)
代码重用,减少系统级的冗余代码。只关注核心业务
代码片的组装,分离代码
事务管理(多个任务完成一个事务):要么都执行,要么都不执行
在dao层,会话工厂生产会话(dao层与数据层的会话)
分为:切面、通知->前置、后置、异常、最终、环绕(切入位置)
不可以返回,环绕则可以返回数据。
切面就是一个类,由切点(标记切入位置)和通知构成。
@aspect
切点表达式,
@Pointcut("execution(* transfer(..))")
任何返回值、参数列表,方法名为transfer的方法都拦截。
spring用了组件自动扫描之后,bean的创建模式默认为单例模式,需要在相应的类里面加上scope="prototype",则换成多例模式
@Service("userBiz")@Scope("prototype")
组件自动扫描
并发:同步锁(代码量较少)、多实例
转载请注明原文地址: https://ju.6miu.com/read-1622.html