Spring day_01
Spring是一个开源框架
一、Spring介绍
1.Spring是一站式框架(原因是Spring框架性质是属于容器性质的容器中装什么对象就有什么功能,所以称为一站式)
2.EE开发分成三层
WEB层:Spring MVC
业务层:Bean管理(IOC)
持久层:Spring的JDBC模板ORM模板用于整合其他的持久层框架
Spring框架不仅不排斥其他框架,华能帮其他框架管理对象,AOP 支持,IOC思想,
二、Spring框架的搭建
1.导包:选用Spring-framework-4.2.4.RELEASE-dist.zip,然后进行解压,
基础包:beans,context,core,expression,还有日志包:
2.创建一个对象:
public class User{
private String name;
private Integer id;
setXXX()和getXXX()方法
}
}
3.Spring的创建规则
Spring的配置文件建议放到src下面,文件名建议为applicationContext.xml
导入约束:window-->preference-->catalog-->spring加压目录下的schema文件-->选择最新版-->
例如:将User对象交给Spring容器管理
即:配置Spring
<beans>
<bean name="user" class="cn.itcast.bean.User">
</bean>
</beans>
4。编写测试类
public class Demo{
public void fun{
//1.创建容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
//2.向容器要user 对象
ac.getBean("user");
//3.打印user对象
System.out.println(user);
}}
三、Spring的概念
1.IOC(Inverse Of Control)反转控制,将我们创建对象的方式反转了,以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入
使用了Spring后对象的创建以及依赖关系可以由Spring完成创建以及注入
反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序
2.DI(Dependency Injection)依赖注入
实现IOC思想需要DI做支持
注入方式:
set方法注入
构造方法注入
字段注入
注入类型:
值类型注入:即8大基本数据类型
引用类型注入:将依赖对象注入
3.applicationContext对象和BeanFactory对象
BeanFactory(已过时):原始接口,实现类的功能较为单一,BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象
ApplicationContext:容器每次启动时就会创建容器中配置的所有对象,并提供更多功能
web开发中,使用ApplicationContext,在资源匮乏的环境时可以使用BeanFactory
结论:
三、Spring配置详解--Beans元素
<!--将User对象交给Spring容器管理
1.Bean元素:使用该元素描述需要Spring容器管理的对象
name属性:给bei管理的对象起个名字,获得对象时候根据该名称获得对象
class属性:被管理对象的完整类名
id属性:与name属性一模一样,名称不可重复,不能使用特殊字符,注意: 尽量使用name属性
scope属性:signgleton(默认值):单例对象,被标识为
prototype:多例原型:被标识为多例的对象,每次在获得才会创建
request:web环境下,对象与request生命周期一致(没用)
session:web环境下与session生命周期一致(没用)
注意:与struts2框架进行整合时,scope要用prototype值,因为每次请求都会产生一个Action
init-method:用于配置Spring的初始化
destroy-method:用于配置Spring在关闭时的销毁
Spring的分模块配置:即导入其他Spring配置文件
<import resource="其他Spring配置文件的路径,相对于src下的路径名">
-->
<bean id="" name="" class=""></bean>
2,Spring创建对象的方式:
1)空参构造方式:
2)静态工厂方式:BeanFactory(作为了解)
public class UserFactory{
public static User createUser(){
System.out.println("静态工厂创建Bean");
}
}
此种情况下的配置:
<beans>
<bean name="" class="UserFactory对象的全包名" fatory-method="createUser"></bean>
</beans>
3)实例化工厂,也就是动态工厂(作为了解)
3.Spring 的属性注入;一共有四种方式
1)set方法注入(重点):
<!--set注入方式:-->
<bean name="user" class="cn.itcast.bean.User">
<!--为user对象中的name属性注入tom作为属性值
<property name="name" value="tom"></property>
<property name="age" value="18"><property>
<!--引用类型用ref,值类型用value-->
<!--car表示Car类-->
<property name="car" ref="car"></property>
</bean>
2)构造函数注入
<!--构造函数注入-->
<bean name="" class="cn.itcast.bean.User">
<constructor-arg name="name" value="james" >注入属性要用value</constructor>
<constructor-arg name="car" ref="car">注入对象要用ref</constructor>
3)p名称空间注入(没用)
4)spel注入:(没用)
练习:将Spring容器应用到struts-crm项目
管理Service对象以及Dao对象
步骤: 1.导包
2.将Service对象以及Dao对象配置到
<!--配置Dao-->
<bean name="customerDao" class="cn.itheima.dao.impl.CustomerDaoImpl">
<bean name="linkManDao" class="cn.itheima.dao.impl.LinkManImpl"
<!--配置Service-->
<bean name="customerService" class="cn.itheima.dao.impl.CustomerServiceImpl">
复习;
1.Spring 介绍
Spring并不局限于某一层
Spring是对象的容器,帮我们管理项目中的所有对象
2.Spring搭建
1)导包
2)准备类
3)书写配置(建议放到/src/applicationContext.xml)
3.Spring中的概念
IOC:反转控制,创建对象的方式反转了,从我们自己创建对象,反转给Spring来创建
DI:依赖注入,将必须的属性注入到对象当中,是实现IOC思想必须条件
beanFacotory与ApplicationContext
4.配置文件详解
bean元素
id属性:给Bean起个名字 不能重复,不能使用特殊字符,早期属性
name属性:给Bean起个名字 能重复,能使用特殊字符,后来属性
class属性:类的完整类名
生命周期属性: init-method 指初始化方法 destroy-method 指出销毁方法
作用范围 scope:singleton:(默认值):单例,创建容器时会立即创建单例对象
prototype:多例,每次获得对象时,才会创建对象,并且每次都会创建新的对象分模块开发
<import />
5.Bean 的创建方式
1)空参构造创建
2)静态工厂
3)实例工厂
6.注入方式
1)set方法
2)*构造方法
3)p名称空间
4)spEL表达式
7.复杂属性注入
Array,List,Map,Properties
8。在web环境中使用Spring容器
1)导包
2)在web.xml中配置listener=》ContextLoaderListener
3)在Action中,使用工具类获得容器
WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)
Spring是一个开源框架
一、Spring介绍
1.Spring是一站式框架(原因是Spring框架性质是属于容器性质的容器中装什么对象就有什么功能,所以称为一站式)
2.EE开发分成三层
WEB层:Spring MVC
业务层:Bean管理(IOC)
持久层:Spring的JDBC模板ORM模板用于整合其他的持久层框架
Spring框架不仅不排斥其他框架,华能帮其他框架管理对象,AOP 支持,IOC思想,
二、Spring框架的搭建
1.导包:选用Spring-framework-4.2.4.RELEASE-dist.zip,然后进行解压,
基础包:beans,context,core,expression,还有日志包:
2.创建一个对象:
public class User{
private String name;
private Integer id;
setXXX()和getXXX()方法
}
}
3.Spring的创建规则
Spring的配置文件建议放到src下面,文件名建议为applicationContext.xml
导入约束:window-->preference-->catalog-->spring加压目录下的schema文件-->选择最新版-->
例如:将User对象交给Spring容器管理
即:配置Spring
<beans>
<bean name="user" class="cn.itcast.bean.User">
</bean>
</beans>
4。编写测试类
public class Demo{
public void fun{
//1.创建容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
//2.向容器要user 对象
ac.getBean("user");
//3.打印user对象
System.out.println(user);
}}
三、Spring的概念
1.IOC(Inverse Of Control)反转控制,将我们创建对象的方式反转了,以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入
使用了Spring后对象的创建以及依赖关系可以由Spring完成创建以及注入
反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序
2.DI(Dependency Injection)依赖注入
实现IOC思想需要DI做支持
注入方式:
set方法注入
构造方法注入
字段注入
注入类型:
值类型注入:即8大基本数据类型
引用类型注入:将依赖对象注入
3.applicationContext对象和BeanFactory对象
BeanFactory(已过时):原始接口,实现类的功能较为单一,BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象
ApplicationContext:容器每次启动时就会创建容器中配置的所有对象,并提供更多功能
web开发中,使用ApplicationContext,在资源匮乏的环境时可以使用BeanFactory
结论:
三、Spring配置详解--Beans元素
<!--将User对象交给Spring容器管理
1.Bean元素:使用该元素描述需要Spring容器管理的对象
name属性:给bei管理的对象起个名字,获得对象时候根据该名称获得对象
class属性:被管理对象的完整类名
id属性:与name属性一模一样,名称不可重复,不能使用特殊字符,注意: 尽量使用name属性
scope属性:signgleton(默认值):单例对象,被标识为
prototype:多例原型:被标识为多例的对象,每次在获得才会创建
request:web环境下,对象与request生命周期一致(没用)
session:web环境下与session生命周期一致(没用)
注意:与struts2框架进行整合时,scope要用prototype值,因为每次请求都会产生一个Action
init-method:用于配置Spring的初始化
destroy-method:用于配置Spring在关闭时的销毁
Spring的分模块配置:即导入其他Spring配置文件
<import resource="其他Spring配置文件的路径,相对于src下的路径名">
-->
<bean id="" name="" class=""></bean>
2,Spring创建对象的方式:
1)空参构造方式:
2)静态工厂方式:BeanFactory(作为了解)
public class UserFactory{
public static User createUser(){
System.out.println("静态工厂创建Bean");
}
}
此种情况下的配置:
<beans>
<bean name="" class="UserFactory对象的全包名" fatory-method="createUser"></bean>
</beans>
3)实例化工厂,也就是动态工厂(作为了解)
3.Spring 的属性注入;一共有四种方式
1)set方法注入(重点):
<!--set注入方式:-->
<bean name="user" class="cn.itcast.bean.User">
<!--为user对象中的name属性注入tom作为属性值
<property name="name" value="tom"></property>
<property name="age" value="18"><property>
<!--引用类型用ref,值类型用value-->
<!--car表示Car类-->
<property name="car" ref="car"></property>
</bean>
2)构造函数注入
<!--构造函数注入-->
<bean name="" class="cn.itcast.bean.User">
<constructor-arg name="name" value="james" >注入属性要用value</constructor>
<constructor-arg name="car" ref="car">注入对象要用ref</constructor>
3)p名称空间注入(没用)
4)spel注入:(没用)
练习:将Spring容器应用到struts-crm项目
管理Service对象以及Dao对象
步骤: 1.导包
2.将Service对象以及Dao对象配置到
<!--配置Dao-->
<bean name="customerDao" class="cn.itheima.dao.impl.CustomerDaoImpl">
<bean name="linkManDao" class="cn.itheima.dao.impl.LinkManImpl"
<!--配置Service-->
<bean name="customerService" class="cn.itheima.dao.impl.CustomerServiceImpl">
复习;
1.Spring 介绍
Spring并不局限于某一层
Spring是对象的容器,帮我们管理项目中的所有对象
2.Spring搭建
1)导包
2)准备类
3)书写配置(建议放到/src/applicationContext.xml)
3.Spring中的概念
IOC:反转控制,创建对象的方式反转了,从我们自己创建对象,反转给Spring来创建
DI:依赖注入,将必须的属性注入到对象当中,是实现IOC思想必须条件
beanFacotory与ApplicationContext
4.配置文件详解
bean元素
id属性:给Bean起个名字 不能重复,不能使用特殊字符,早期属性
name属性:给Bean起个名字 能重复,能使用特殊字符,后来属性
class属性:类的完整类名
生命周期属性: init-method 指初始化方法 destroy-method 指出销毁方法
作用范围 scope:singleton:(默认值):单例,创建容器时会立即创建单例对象
prototype:多例,每次获得对象时,才会创建对象,并且每次都会创建新的对象分模块开发
<import />
5.Bean 的创建方式
1)空参构造创建
2)静态工厂
3)实例工厂
6.注入方式
1)set方法
2)*构造方法
3)p名称空间
4)spEL表达式
7.复杂属性注入
Array,List,Map,Properties
8。在web环境中使用Spring容器
1)导包
2)在web.xml中配置listener=》ContextLoaderListener
3)在Action中,使用工具类获得容器
WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)