一。概述
1.Spring是分层的java SE/EE应用full-stack轻量级开源框架,以loC(反转控制)和AOP(面向切面编程)为内核。提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的java EE企业应用开源框架。
2.Spring的优势
1.方便解耦,简化开发
2.AOP编程的支持
3.声明式事务的 支持
4.方便程序的测试
3.spring程序开发步骤
1)导入spring开发的基本包坐标
2)编写Dao接口和实现类
3)创建Spring核心配置文件
4)在Spring配置文件中配置UserDaoImpl
5)使用Spring的API获得Bean实例
4.导入Spring开发的基本包坐标
<properties>
<spring.version>5.0.5.RELEASE</spring.version>
</properties>
<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
5.在Spring配置文件中配置UserDaoImpl
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
</beans>
6.使用Spring的API获得Bean实例
@Test
public void test1(){
ApplicationContext applicationContext = new
ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao"); userDao.save();
}
- Spring配置文件
7.1 Bean标签基本配置
用来配置对象交由Spring来创建,默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数,如果没有无参构造函数则不能创建成功
7.2 Bean标签范围配置
scope属性:
singleton:默认值,单例的
prototype:多例的
request:WEB 项目中,Spring创建一个Bean的对象,将对象存入到request域中。
session:WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中。
globalsession:WEB项目中,应那么用Portlet 环境,如果没有Portlet环境那么globalSession相当于session。
1)当scope的取值为singleton时
Bean的实例化个数:1个
Bean的实例化时机:当Spring核心文件被加载是,实例化配置的Bean实例。
Bean的生命周期:
对象创建:当应用加载,创建容器时,对象就被创建了
对象运行:只要容器在,对象一直活着
对象销毁:当应用卸载,销毁容器时,对象就被销毁了
2)当scope的取值为proptotype时
Bean的实例化个数:多个
Bean的实例化时机:当调用getBean()方法时实例化Bean
对象创建:当使用对象时,创建新的对象实例
对象运行:只要对象在使用中,就一直活着
对象销毁:当对象长时间不用时,被java的垃圾回收器回收了
3)Bean实例化三种方式
1)使用无参构造方法实例化
它会根据默认无参构造方法来创建类对象,如果bean中没有默认无参构造函数,将会创建失败
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
2)工厂静态方法实例化
工厂的静态方法返回Bean实例
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}