1、Spring概述
1.2 什么是Spring:
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,有Rod Johnson在其著作Exper One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。
EE开发分成三层结构:
- WEB层:Spring MVC;
- 业务层:Bean管理(IOC);
- 持久层:Spring的JDBC模板,ORM模板用于整合其他的持久层框架
IOC:Inversion of Control 控制反转,指的是 对象的创建权反转交给Spring
操作步骤:
1、下载Spring jar 包(http://spring.io/)
2、创建web项目,引入Spring的开发包
3、引入相关的配置文件、
log4j.properties
applicationContext.xml
DI:Dependency Injection 依赖注入,需要有IOC的环境。Spring创建这个类的过程中,Spring将类的依赖的属性设置进去。
Spring中的工厂(容器):(通过配置applicationContext.xml创建对象)
ApplicationContext 接口有两个实现类:
ClassPathXmlApplicationContext :加载类路径下Spring的配置文件
FileSystemXmlApplicationContext :加载本地磁盘下Spring的配置文件
BeanFactory 和 AplicationContext 的区别:
BeanFactory(过时):是在getBean的时候才会生成类的实例。
ApplicationContext:在加载applicationContext.xml(容器启动)的时候会创建
Spring的相关配置(xml文件):
id:<bean id="">Bean起个名字,在约束中采用ID的约束;唯一,必须以字母开始,可以使用字母、数字、连接符、下划线、句号、冒号 id不能出现特殊字符。
name:Bean起个名字。没有采用ID的约束,name:能够出现特殊字符;如果<bean>没有id的话,name可以当作id使用。
scope:属性:Bean的作用范围。
singleton :默认值、单例的。
prototype :多例的
request :WEB项目中,Spring创建一个Bean对象,将对象存入到request域中。
session :WEB项目中,Spring创建一个Bean对象,将对象存入到session域中
globalSession:WEB项目中,应用在Porlet环境,如果没有Porlet环境那么globalSession相当于session。
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean
name="userDaoImpl"
class="com.seventeen.dao.impl.UserDaoImpl"></bean>
</beans>
Bean的生命周期的配置:
通过配置<bean>标签上的 init-method 作为Bean的初始化的时候执行的方法,配置 destroy-method 作为Bean的销毁的时候执行的方法。
销毁方法想要执行,需要是单例创建的Bean 而且在工厂关闭的时候,Bean 才会被销毁。
Spring生成Bean的时候三种方式:
1、无参数的构造方法的实例化
<bean name="userDaoImpl" class="com.seventeen.dao.impl.UserDaoImpl"></bean>
2、静态工厂实例化的方式
提供一个工厂类:
public class UserFactory {
public static User creatUser(){
System.out.println("静态工厂创建对象");
return new User();
}
}
<bean name="user2" class="com.seventeen.bean.UserFactory" factory-method="creatUser"></bean>
3、实例工厂实例化的方式
提供Bean的实例工厂
public class UserFactory {
public User creatUser2(){
System.out.println("实例工厂创建对象");
return new User();
}
}
<bean name="userFactory" class="com.seventeen.bean.UserFactory"></bean>
<bean name="user3" factory-bean="userFactory" factory-method="creatUser2"></bean>
Spring的Bean的属性注入:
1、 set方法的方式注入属性:
2、构造方法的方式注入属性
注入复杂类型:
1、数组类型注入
2、注入list集合数据
User.java
3、注入map集合数据
1、Spring概述
1.2 什么是Spring:
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,有Rod Johnson在其著作Exper One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。
EE开发分成三层结构:
- WEB层:Spring MVC;
- 业务层:Bean管理(IOC);
- 持久层:Spring的JDBC模板,ORM模板用于整合其他的持久层框架
IOC:Inversion of Control 控制反转,指的是 对象的创建权反转交给Spring
操作步骤:
1、下载Spring jar 包(http://spring.io/)
2、创建web项目,引入Spring的开发包
3、引入相关的配置文件、
log4j.properties
applicationContext.xml
DI:Dependency Injection 依赖注入,需要有IOC的环境。Spring创建这个类的过程中,Spring将类的依赖的属性设置进去。
Spring中的工厂(容器):(通过配置applicationContext.xml创建对象)
ApplicationContext 接口有两个实现类:
ClassPathXmlApplicationContext :加载类路径下Spring的配置文件
FileSystemXmlApplicationContext :加载本地磁盘下Spring的配置文件
BeanFactory 和 AplicationContext 的区别:
BeanFactory(过时):是在getBean的时候才会生成类的实例。
ApplicationContext:在加载applicationContext.xml(容器启动)的时候会创建
Spring的相关配置(xml文件):
id:<bean id="">Bean起个名字,在约束中采用ID的约束;唯一,必须以字母开始,可以使用字母、数字、连接符、下划线、句号、冒号 id不能出现特殊字符。
name:Bean起个名字。没有采用ID的约束,name:能够出现特殊字符;如果<bean>没有id的话,name可以当作id使用。
scope:属性:Bean的作用范围。
singleton :默认值、单例的。
prototype :多例的
request :WEB项目中,Spring创建一个Bean对象,将对象存入到request域中。
session :WEB项目中,Spring创建一个Bean对象,将对象存入到session域中
globalSession:WEB项目中,应用在Porlet环境,如果没有Porlet环境那么globalSession相当于session。
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean
name="userDaoImpl"
class="com.seventeen.dao.impl.UserDaoImpl"></bean>
</beans>
Bean的生命周期的配置:
通过配置<bean>标签上的 init-method 作为Bean的初始化的时候执行的方法,配置 destroy-method 作为Bean的销毁的时候执行的方法。
销毁方法想要执行,需要是单例创建的Bean 而且在工厂关闭的时候,Bean 才会被销毁。
Spring生成Bean的时候三种方式:
1、无参数的构造方法的实例化
<bean name="userDaoImpl" class="com.seventeen.dao.impl.UserDaoImpl"></bean>
2、静态工厂实例化的方式
提供一个工厂类:
public class UserFactory {
public static User creatUser(){
System.out.println("静态工厂创建对象");
return new User();
}
}
<bean name="user2" class="com.seventeen.bean.UserFactory" factory-method="creatUser"></bean>
3、实例工厂实例化的方式
提供Bean的实例工厂
public class UserFactory {
public User creatUser2(){
System.out.println("实例工厂创建对象");
return new User();
}
}
<bean name="userFactory" class="com.seventeen.bean.UserFactory"></bean>
<bean name="user3" factory-bean="userFactory" factory-method="creatUser2"></bean>
Spring的Bean的属性注入:
1、 set方法的方式注入属性:
2、构造方法的方式注入属性
注入复杂类型:
1、数组类型注入
2、注入list集合数据
User.java
3、注入map集合数据