spring入门1
来源:互联网 发布:电脑无线mac地址查询 编辑:程序博客网 时间:2024/06/14 07:01
注意:使用p和c名称空间,尽量不要在里面调用类的方法,因为只要项目启动,就会扫描bean, 默认执行.
1. beans和core 他们提供了spring框架最基本功能: IOC和di
context上下问对,基于beans与cores
spel 他是spring提供的一个表达式语言.
2. schema 文件夹存放的 xml 的schema约束.
src下创建一个关于spring的配置文件, applicationcontext.xml
3. loc 控制反转 : 原来由我们自己实例化的对象交给我们spring容器来实例化,这时候对象的初始化的权利就会反转.
1.在xml中配置: <bean id="" class="全类名">
2.spring 中提供了beanfactory工厂,我们一般使用的是他的子接口类applicationcontext,读取配置文件,实例化对象
applicationContext a = new classpathxmlapplicationContext("application.xml");
3.a.getbean("id");
4. DI : 在spring框架负责创建bean对象,动态的将依赖对象(也就是参数)注入bean组件(方法)中.
5.bean获取与实例化 ,它采用延迟加载的方案,只有真正的getbean时才会实例化bean.
applicationcontent 他是扩展了beanfactory接口,
applicationcontent实现类 FileSystemxmlapplicationcotext("src/..xml");classPathxmlapplicationcontext;
applicationcontext他会在配置文件加载的时候,就会初始化bean,
并且applicationcontext,在不同的应用层的context实现.
6. name和id: name; 不同包含特殊符合,为了更好的扩展 id: 遵守xml规范,名称内不能包含特殊符合
7. 使用beanfactory获取bean ,采用延迟加载, applicationcontext,采用加载配置文件就获取,提交预处理错误的存在.
8.bean的实例化方式:
1.无参数构造, bean类中必须提供无参数构造
2.静态工厂方法: 需要创建一个工厂类,在工厂类中提供static返回 bean 对象的方法就可以
配置文件中, <bean name="" class="工厂类的全类名" factory-method="工厂内方法名">
3.实例工厂方法: 需要创建一个工厂类,在工厂类中提供非static返回 bean 对象的方法就可以
配置文件中, <bean name="工厂名" class="工厂类的全类名">
<bean name="类名" factory-bean="工厂名" factory-method="工厂内方法名">
9. bean的作用域: 在bean标签内 scope=""
可取值:
prototype : 多例 每一次从spring容器中获取时,都会返回一个新的实例.
singleton : 单例 代表springIOC容器中只有一个bean实例.(默认)
request : 用在web开发中, 将bean对象使用request.setrrtribute()存储在request域中.
session : 用在web开发中, 将bean对象使用session.setrrtribute()存储在session域中.
在开发常用的值是 singleton 与 prototype
10 bean的生命周期: 一共十一步
1. 实例化对象 2. 封装属性 3.如果实现了beannameaware 重写方法, 得到bean的id或name值
4.如果实现了applicationaware 重写方法, 得到application的对象
第三步和第四步是让bean了解spring容器. 第五步和第八步是 对指定bean进行功能增强.
1.对于bean的生命周期,两个方法: 增强bean可以使用后处理bean
2. 如果需要初始化或销毁操作我们可以使用 init-method destroy-method
11.bean标签下注入:
1.构造器注入 <construction-arg index="要注入的第一个属性",type="java.langString " value="">
2.set方法注入 <property name="" value="">
3.构造标签和property标签的: ref属性的值为另一个bean对象.bean对象必须先声明,完成引用类型的注入.
4 .<bean>.标签下集合属性注入: 专门的标签来注入
1. list集合或数组 <property name="list"> <list> <value>sfda
2. set集合: <property name="set"> <set> <value>sfda
3. map集合: <property name="map"> <map><entry key=""或Key-ref value=""或value-ref>
4. properties : <property name="map"> <props><prop key="">值
12. spring2.0后 名称空间p和c的使用: 他们是虚拟的, 嵌入在spring内核中的,
1.使用 p 名称空间可以解决我们setter注入时 <property> 简化
前提: 把xmls:p = .....schema/p
使用: 在 bean 标签内: p:成员属性名="值"
2. 使用 c 名称空间可以解决我们构造器注入时<constructor-arg>简化
前提: 把xmls:c = .....schema/c
使用: 在 bean 标签内: c:成员属性名="值" 或c:成员属性-ref
13. spring 中 spel表达式; 类似与 ognl 或 el表达式 完成对象属性存储以及方法调用 spring3.0提供的.
原来: ref 快 , 用 value="#{dog.age或getage()+10}" (很少使用)
14. 注解开发:
1. 在xml中 一个约束文件,context名称空间, <context:component base-package="com.xc"/>
指明spring扫描哪个包,它包含了 <context:annotation-config/>功能是作用是让spring常用的标签生效
2. @component("id名")在类上面, 如果没指定id名, 会默认以类名首字母小写.
3.在spring2.5后为@Component添加了三个衍生的注解 ,针对不同的层用, 如果不确定哪个层,就用@component
@Repository 用于DAO层
@Service 用于service层
@Controller 用于表现层
4.属性依赖注入:
1.简单属性或set方法注入: @value("值")
2.复杂属性或set方法注入: 对引用类型的成员属性,@autowired 默认是按照类型进行注入.
加上@qualifier("id名"),可以根据名称注入.
另一种注解 @resuore(name="id")
3. @autowired 和 @resuore 两种注解的区别:
1. 都可以写在字段上,或卸载set方法上
2. @autowired 默认是按照类型进行注入.
@resuore是javaee的提供注解, 减少了与spring耦合,默认按照name记性装配, 查找不到,再按照类型注入.
5.其他注解 @scope(值) 描述bean的作用域 在自定义初始化方法上加@postconstruct
在销毁方法上加 @predestroy 只对于scope(singleton) 有效, 调用close方法时候才能够执行.
15. spring整合Junit4,
1.导入spring-test4-release.jar包
2.在类上面 @runwith(springjunit4classrunner.class) @contextconfiguration(locations="classpath:...xml")
16. spring 在web开发中的应用.
1.导入一个jar包
2.在web.xml 配置<listener-class> org........web.contextloaderlistener
contextloaderlistener他实现了servletcontextlistener,他是监听整个容器操作的
在这个listener中,当我们服务器启动时, contextloaderlistener他帮我们创建了servletcontext对象
而将applicationcontext对象的一个实现类webapplicationcontext存入到了servletcontext中.
servletcontext.get
3.我们还需要在web.xml文件中配置 applicationcontext.xml文件, 默认情况下会在web-inf目录下查找
全局变量: <context-param> <param-name> contextconfiglocation</param-name>
<param_value> classpath:applicaitoncontext.xml
就是在src下查找配置文件
1. beans和core 他们提供了spring框架最基本功能: IOC和di
context上下问对,基于beans与cores
spel 他是spring提供的一个表达式语言.
2. schema 文件夹存放的 xml 的schema约束.
src下创建一个关于spring的配置文件, applicationcontext.xml
3. loc 控制反转 : 原来由我们自己实例化的对象交给我们spring容器来实例化,这时候对象的初始化的权利就会反转.
1.在xml中配置: <bean id="" class="全类名">
2.spring 中提供了beanfactory工厂,我们一般使用的是他的子接口类applicationcontext,读取配置文件,实例化对象
applicationContext a = new classpathxmlapplicationContext("application.xml");
3.a.getbean("id");
4. DI : 在spring框架负责创建bean对象,动态的将依赖对象(也就是参数)注入bean组件(方法)中.
5.bean获取与实例化 ,它采用延迟加载的方案,只有真正的getbean时才会实例化bean.
applicationcontent 他是扩展了beanfactory接口,
applicationcontent实现类 FileSystemxmlapplicationcotext("src/..xml");classPathxmlapplicationcontext;
applicationcontext他会在配置文件加载的时候,就会初始化bean,
并且applicationcontext,在不同的应用层的context实现.
6. name和id: name; 不同包含特殊符合,为了更好的扩展 id: 遵守xml规范,名称内不能包含特殊符合
7. 使用beanfactory获取bean ,采用延迟加载, applicationcontext,采用加载配置文件就获取,提交预处理错误的存在.
8.bean的实例化方式:
1.无参数构造, bean类中必须提供无参数构造
2.静态工厂方法: 需要创建一个工厂类,在工厂类中提供static返回 bean 对象的方法就可以
配置文件中, <bean name="" class="工厂类的全类名" factory-method="工厂内方法名">
3.实例工厂方法: 需要创建一个工厂类,在工厂类中提供非static返回 bean 对象的方法就可以
配置文件中, <bean name="工厂名" class="工厂类的全类名">
<bean name="类名" factory-bean="工厂名" factory-method="工厂内方法名">
9. bean的作用域: 在bean标签内 scope=""
可取值:
prototype : 多例 每一次从spring容器中获取时,都会返回一个新的实例.
singleton : 单例 代表springIOC容器中只有一个bean实例.(默认)
request : 用在web开发中, 将bean对象使用request.setrrtribute()存储在request域中.
session : 用在web开发中, 将bean对象使用session.setrrtribute()存储在session域中.
在开发常用的值是 singleton 与 prototype
10 bean的生命周期: 一共十一步
1. 实例化对象 2. 封装属性 3.如果实现了beannameaware 重写方法, 得到bean的id或name值
4.如果实现了applicationaware 重写方法, 得到application的对象
第三步和第四步是让bean了解spring容器. 第五步和第八步是 对指定bean进行功能增强.
1.对于bean的生命周期,两个方法: 增强bean可以使用后处理bean
2. 如果需要初始化或销毁操作我们可以使用 init-method destroy-method
11.bean标签下注入:
1.构造器注入 <construction-arg index="要注入的第一个属性",type="java.langString " value="">
2.set方法注入 <property name="" value="">
3.构造标签和property标签的: ref属性的值为另一个bean对象.bean对象必须先声明,完成引用类型的注入.
4 .<bean>.标签下集合属性注入: 专门的标签来注入
1. list集合或数组 <property name="list"> <list> <value>sfda
2. set集合: <property name="set"> <set> <value>sfda
3. map集合: <property name="map"> <map><entry key=""或Key-ref value=""或value-ref>
4. properties : <property name="map"> <props><prop key="">值
12. spring2.0后 名称空间p和c的使用: 他们是虚拟的, 嵌入在spring内核中的,
1.使用 p 名称空间可以解决我们setter注入时 <property> 简化
前提: 把xmls:p = .....schema/p
使用: 在 bean 标签内: p:成员属性名="值"
2. 使用 c 名称空间可以解决我们构造器注入时<constructor-arg>简化
前提: 把xmls:c = .....schema/c
使用: 在 bean 标签内: c:成员属性名="值" 或c:成员属性-ref
13. spring 中 spel表达式; 类似与 ognl 或 el表达式 完成对象属性存储以及方法调用 spring3.0提供的.
原来: ref 快 , 用 value="#{dog.age或getage()+10}" (很少使用)
14. 注解开发:
1. 在xml中 一个约束文件,context名称空间, <context:component base-package="com.xc"/>
指明spring扫描哪个包,它包含了 <context:annotation-config/>功能是作用是让spring常用的标签生效
2. @component("id名")在类上面, 如果没指定id名, 会默认以类名首字母小写.
3.在spring2.5后为@Component添加了三个衍生的注解 ,针对不同的层用, 如果不确定哪个层,就用@component
@Repository 用于DAO层
@Service 用于service层
@Controller 用于表现层
4.属性依赖注入:
1.简单属性或set方法注入: @value("值")
2.复杂属性或set方法注入: 对引用类型的成员属性,@autowired 默认是按照类型进行注入.
加上@qualifier("id名"),可以根据名称注入.
另一种注解 @resuore(name="id")
3. @autowired 和 @resuore 两种注解的区别:
1. 都可以写在字段上,或卸载set方法上
2. @autowired 默认是按照类型进行注入.
@resuore是javaee的提供注解, 减少了与spring耦合,默认按照name记性装配, 查找不到,再按照类型注入.
5.其他注解 @scope(值) 描述bean的作用域 在自定义初始化方法上加@postconstruct
在销毁方法上加 @predestroy 只对于scope(singleton) 有效, 调用close方法时候才能够执行.
15. spring整合Junit4,
1.导入spring-test4-release.jar包
2.在类上面 @runwith(springjunit4classrunner.class) @contextconfiguration(locations="classpath:...xml")
16. spring 在web开发中的应用.
1.导入一个jar包
2.在web.xml 配置<listener-class> org........web.contextloaderlistener
contextloaderlistener他实现了servletcontextlistener,他是监听整个容器操作的
在这个listener中,当我们服务器启动时, contextloaderlistener他帮我们创建了servletcontext对象
而将applicationcontext对象的一个实现类webapplicationcontext存入到了servletcontext中.
servletcontext.get
3.我们还需要在web.xml文件中配置 applicationcontext.xml文件, 默认情况下会在web-inf目录下查找
全局变量: <context-param> <param-name> contextconfiglocation</param-name>
<param_value> classpath:applicaitoncontext.xml
就是在src下查找配置文件
阅读全文
1 0
- Spring框架(1)---Spring入门
- Spring框架(1)---Spring入门
- spring入门1
- spring 入门1
- Spring MVC入门 (1)
- 1、Spring快速入门
- Spring MVC入门1
- 1 Spring JPA入门
- Spring 入门案例1
- Spring MVC入门1
- Spring入门1-基本概念
- Spring入门 1
- spring aop入门1
- spring boot 入门 1
- Spring入门1
- Spring MVC入门1
- spring boot入门-1
- spring学习-1 入门
- hibernate入门3
- spring boot之简单项目搭建
- hibernate入门4
- 20170630总结
- 【DP+最短路】BZOJ1003 [ZJOI2006]物流运输
- spring入门1
- 20170701总结
- 搭建CI感想——一周的时间搞:maven——Jenkins——Sonar——Jacoco
- 一.Flask-基本环境安装配置
- centos6.7安装hadoop准备工作-----1
- spring入门2
- 暑假第一周 J hdu 5702 (结构体排序)
- JS基础知识二
- leetcode难度及面试频率