Spring
文章目录
前言
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
一、Spring Framework系统架构
核心概念IoC
初始代码耦合性太高,不利于后期开发维护,所以在程序中不主动使用new产生对象,转为由外部提供对象
1.Bean
1.1bean的基础配置
<!--1.导入spring的坐标spring-context-->
<!--导入spring框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<!--2.配置bean-->
<!--id属性表示给bean起名字
class属性表示bean定义类型
name属性可以起多个别名,用空格,逗号,分号隔开
scope属性表示bean的作用范围默认单例,prototype多例-->
<bean id="bookDao" name="dao dao2" class="demo.dao.impl.BookDaoImpl" scope="prototype"/>
bean的作用范围
- bean默认是单例,指那些可以被用户复用的对象
- 适合交给容器进行管理的bean
- 表现层对象
- 业务层对象
- 数据层对象
- 工具对象 - 不适合交给容器管理的bean
- 封装实体的对象
1.2bean的实例化
1.构造方法(常用)
- 提供可访问的构造方法
- 配置(以bookDao为例)
<bean id = "bookDao" class = "com.demo.iml.BookDaoImpl" />
- 无参构造方法不存在时,将会抛出异常BeanCreationExcetion
2.静态工厂(了解)
3.实例工厂(了解)
4.实例化bean的第四种方式-FactoryBean - FactoryBean
public class UserDaoFactoryBean implements FactoryBean<UserDao>{
public UserDao getObject() throws Exception {
return new UserDaoImpl();
}
public Class<?> getObjectType() {
return UserDao.class;
}
}
- 配置
<bean id = "userDao" class = "com.demo.factory.UserDaoFactoryBean " />
1.3bean的生命周期
2.依赖注入方式
2.1向一个类中传递数据的方式
2.2自动装配
- IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配,例如dao类和service实现类的依赖关系
- 配置中使用bean标签autowire属性设置自动装配的类型
- 依赖自动装配特征
3.注解开发
3.1bean管理
3.2依赖注入
3.3第三方bean管理
- 简单类型依赖注入
- 引用类型依赖注入
4.小结xml配置对比注解配置
核心概念AOP
1.AOP简介
以下案例为例:
将程序中方法的共性抽取出来放到通知类里,需要执行的定义为切入点,切入点和通知绑定为切面(在切入点上执行那些通知)
小结:
1.2AOP工作流程
1.3AOP切入点表达式
1.4AOP通知类型
总结
加油