1、2007年,基于 Java 得开源框架正式发布
2、Spring 不仅仅是一个框架,Spring 俨然成为了一种生态
3、与其说是 Java 开发,不如书是 Spring 开发
4、简化开发,让程序员把关注点放到业务中去
1、基于 POJO 得轻量级和最小侵入性编程
2、通过依赖注入和面向接口松耦合
3、基于切面和惯性进行声明式编程
4、通过切面和模板减少样板式代码
Spring思想 | 应用场景 [特点] | 一句话归纳 |
---|---|---|
OOP | Object Oriented Programming [面向对象编程] 用程序归纳总结生活中一切事物 | 封装、继承、多态 |
BOP | Bean Oriented Programming [面向Bean编程] 面向Bean [普通 Java 类] 设计程序,解放程序员。 | 一切从Bean开始 |
AOP | Aspect Oriented Programming [面向切面编程] 找出多个类中有一定规律的代码,开发时拆开,运行时再合并。面向切面编程,即面向规则编程。 | 解耦,专人做专事 |
IOC | InverSion Of Control [控制反转] 将 new 对象的动作交给 Spring 管理,并由 Spring 保存已创建的对象 [IOC容器] | 转交控制权 [即 控制权反转] |
DI/DL | Dependency Injection [ 依赖注入 ] 或者 Dependency Lookup [以来查找],Spring不仅保存自己创建的对象,而且保存对象与对象之间的关系。注入即赋值,主要三种方式,构造方法、set方法、直接赋值 | 自动赋值 |
AOP、IOC、DI 之间的关系
1、AOP 依赖于 IOC
2、DI 依赖于 IOC
1、掌握 XML 配置和 Annotation 编程的区别
2、掌握常用的 Annotion 配置功能
3、完全掌握 Spring 的 Annotation API 使用
注解名称 | 说明 |
---|---|
@Configuration | 把一个类作为一个 IOC 容器,它的某个方法头上如果注册了 @Bean,就会作为这个 Spring 容器中的 Bean |
@ComponentScan | 在配置类上添加 @ComponentScan 注解,该注解默认会扫描该类所在的报下所有的配置类,相当于之前的 < context:component-sacn > |
@Scope | 用于指定 scope 作用域的 [ 用在类上 ] |
@Lazy | 表示延迟初始化 |
@Conditional | Spring 4 开始提供,它的作用时按照一定的条件进行判断,满足条件给容器注册 Bean |
@Import | 导入外部资源 |
生命周期控制 | @PostConstruct 用于指定初始化方法 [ 用在方法上 ] @PreDestory 用于指定销毁方法 [ 用在方法上 ] @DependsOn 定义 Bean 初始化即销毁时的顺序 |
注解名称 | 说明 |
---|---|
@Component | 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注 |
@Service | 用于标注业务层组件 |
@Controller | 用于标注控制成组件 |
@Repository | 用于标注数据访问层组件,即Dao组件 |
@Value | 普通数据类型赋值 |
@Autowired | 默认按类型装配,如果我们想使用按名称装配,可以结合 @Qualifier 注解一起使用 |
@PropertySource | 读取配置文件赋值 |
@Qualifier | 如存在多个实例配合使用 |
@Primary | 自动装配时当出现多个 Bean 候选时,被注解为 @Primary 的 Bean 将作为首选者,否则将抛出异常 |
@Resource | 默认按名称装配,当找不到与名称匹配的 Bean 才会按类型装配 |
注解名称 | 说明 |
---|---|
ApplicationContextAware | 可以通过这个上下文环境对象得到Spring容器中的 Bean |
BeanDefinitionRegistryPostProcessor | BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口,时Spring框架的BeanDifinitionRegistry的后处理器,用来注册额外的BeanDefinition |
注解名称 | 说明 |
---|---|
@EnableTransactionManagement | 添加对事物管理的支持 |
@Transactional | 配置声明式事务信息 |
原文:https://www.cnblogs.com/JustDoIt-1221/p/14623784.html