1.ioc 是一种设计开发思想,它让我们开发起来结构逻辑更加清晰明了,摆脱了在被调用对象中通过new 调用对象的方式,通过DI(依赖注入:1.注解方式,然后配置文件扫描 2:配置文件自定义bean),解决了代码类与类之间的耦合度(高内聚,低耦合);
注:在配置文件中自定义bean的几种形式
<!-- 单例,共享一个对象 -->
<bean id="test" class="com.note.service.NoteService" scope="singleton"></bean>
<!-- 多例,每次注入都会产生一个新对象 -->
<bean id="test" class="com.note.service.NoteService" scope="prototype"></bean>
<!-- 每次发送HTTP请求 都会产生一个新对象,且只在当前请求有效 -->
<bean id="test" class="com.note.service.NoteService" scope="request"></bean>
<!-- 每次发送HTTP请求 都会产生一个新对象,且只在当前当前HTTP session有效 -->
<bean id="test" class="com.note.service.NoteService" scope="session"></bean>
<!-- 整个会话周期内有效 -->
<bean id="test" class="com.note.service.NoteService" scope="global session"></bean>
2.面向切面编程,主要是将每个方法共同的行为提取出来,简化代码的目的,如打印日志、统计接口耗时等
a:asecpJ 编译过程中在目标类中植入需要的行为,缺点:需要特定的编译工具
b.aop 主要有两种方式(自定义注解植入,包名植入)