2018.12.20 Spring环境如何搭建
Spring学习
1.导入spring约束 为后续创建xml文件做铺垫


2.开始搭建Spring环境
1.创建Web项目,引入spring的开发包(根据下面的图来引入)

2.引入jar包 coreContainer是我们最基础的包

3.在引入一个日志包 



4.创建一个对象

5.书写配置注册对象到容易。建议放在src下面,名字叫applicationContext.xml

具体步骤:
第一次的时候需要配置一下


再点击一下add------Specify New NameSpace

导入刚才我们的beans的xsd文件

对比一下是不是这样的哦
NameSpace Name:http://www.springframework.org/schema/beans
Location Hint:http://www.springframework.org/schema/beans/spring-beans-4.2.xsd

导入成功


6.测试

3. IOC Inverse of Control 控制反转。定义
	将我们创建对象的方式反转了,
	以前对象的创建是由我们开发人员维护,包括依赖关系也是自己注入。
	使用了spring之后,我们对象的创建以及依赖关系可以由spring完成创建以及注入
	反转控制就是反转了对象的创建方式,从我们自己创建反转为程序spring
4. DI Dependency Injection 依赖注入 定义
实现IOC思想需要DI做支持/
	注入方式:
		set方式注入
		构造方法注入
		字段注入
	注入类型:
		值类型注入。 八大基本数据类型
		引用类型注入。对象里面嵌套属性。将依赖的对象注入
5.ApplicationContext & BeanFactory
5. 1 BeanFactory接口。过时
BeanFactory接口实现类的容器,特点是每次在获得 对象时才会创建对象
spring原始接口,针对原始接口的实现类功能比较单一
5.2 ApplicationContext。常用
每次容器启动时就会创建容器中配置的所有对象,并提供更多功能。
从类路径下加载配置文件:ClassPathXmlApplicationContext。(常用)
从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext
总结:web开发中,使用ApplicationContext,在资源匮乏的环境可以使用BeanFactory
6.Spring中对象创建方式
6.1 通过空参构造方法创建 (常用)


spring在创建容器的时候也会吧容器内的对象也创建出来

6.2 通过静态工厂方法创建 (了解)


可以直接通过类名就能调用里面的方法了
6.3 通过实例工厂方法创建 (了解)
要先创建实体工厂类才能调用里面的方法



6.4 Bean元素进阶
(1)scope属性
- singleton(默认值):单例对象
 
被标识为单例的对象在spring容器中只会存在一个实例


- prototype:多例原型
 
被标识为多例对象。每次获得的对象都是新的对象

- request(了解):web环境下。对象与request生命周期一致
 - session(了解):web环境下。对象与session生命周期一致
 
在跟struts2整合的时候,ActionBean必须要配置为多例模式prototype 的。
(2)生命周期属性。了解
配置一个方法作为生命周期初始化方法,spring会在对象创建之后立即调用---init-method
配置一个方法作为生命周期销毁方法,spring容器在关闭并销毁所有容器中的对象之前调用---destroy-method
测试



7.spring的分模块配置

8.Spring的属性注入 (4种方式)
8.1 set方法注入 。重点掌握而且比较简单
1.普通对象属性注入

测试

2.引用类型注入

注入car对象



8.2 构造函数注入
注入参数的取值

ref引用的

name

测试

有两种情况,想指定那个参数在前面 还有指定使用那个类型的构造方法 添加index属性和type属性即可


8.3 p名称空间注入。了解
<!-- p命名空间注入  实际是走set方法注入 -->
	<!--
		1.导入p命名空间 xmlns:p="http://www.springframework.org/schema/p"
		2.使用p属性完成注入
			|-值类型:p:属性名="值"
			|-对象类型:p:属性名-ref:值
	 -->


8.4 spel注入。了解


9.复杂类型注入
9.1 array类型注入


上面是在数组中注入一个值的情况
下面通过修改配置文件注入多个值


以上就是注入array的情况分析
9.2 List类型注入

测试

9.3 Map 类型注入


9.4 Properties 类型注入


10. 将spring容器应用到struts-crm 项目
步骤:
10.1 导包 (4+2),再加一个spring-web-xxxx.jar 包

10.2 将Service对象以及Dao对象配置到Spring容器

10.3 在Action中获取容器中的Service对象。10.4节 是我们的错误示范
ContextLoader关键字

接下来指定spring配置文件加载路径

contextConfigLocation 是如何能在源码中找到的

查看源码 导包source的


接下来 修改Action保证一个项目中只有一个容器

10.4 管理容器在项目中的生命周期。这样会 导致每次请求都创建新的容器

2018.12.20 Spring环境如何搭建的更多相关文章
- spring环境的搭建及作用和定义<一>
		
问题?spring的定义及作用.spring的环境搭建 一.spring的定义及作用 1.spring由Rod Johnson创建的一个开源框架,它是为了解决企业应用开发的复杂性而创建的.框架的主要优 ...
 - Spring环境的搭建与测试 (spring2.5.6)
		
这里是采用的视频里面的spring版本 下载spring2.5.6, 然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下 dist\spring.jar lib\jakarta-commo ...
 - 1.spring环境的搭建
		
1.app.config <?xml version="1.0" encoding="utf-8" ?><configuration> ...
 - 2018.12.25 Spring中JDBCTemplate模版API学习
		
1 Spring整合JDBC模版 1.1 spring中土拱了一个可以操作数据库的对象.对象封装了jdbc技术 JDBCTemplateJDBC模板对象 1.2 与DBUtils中的QueryRunn ...
 - 2018.12.24 Spring中的aop演示(也就是运用aop技术实现代理模式)
		
Aop的最大意义是:在不改变原来代码的前提下,也不对源代码做任何协议接口要求.而实现了类似插件的方式,来修改源代码,给源代码插入新的执行代码. 1.spring中的aop演示 aop:面向方面编程.不 ...
 - 2018.12.22 Spring学习02
		
Spring学习02 1.使用注解配置Spring 1.1 为主配置文件引入新的命名空间(约束) 添加约束文件xxx-xxx-context.xml 添加到主配置文件中 选择刚才的context.xm ...
 - 2018.12.2  Mac环境下mysql图形化界面的Navicat premium 12 中文版安装与激活
		
软件链接: https://pan.baidu.com/s/1ZUNLQ1DW9rQZUzDXQn2rWQ 提取码: 8i78 复制这段内容后打开百度网盘手机App,操作更方便哦 注意最新版 12.0 ...
 - 2018/12/20 20:52:42 螺纹钢PTA豆粕
		
如期向上,但是一点办法没有:没有好的入场位,不做不算错,面对诱惑不动如山也是一种修养,今晚看M5有没有3买,有的话可以看情况考虑要不要进场 PTA M30向下一笔过程中,等待M30当前一笔下跌结束,可 ...
 - 2018.12.20 L195
		
Every Brazilian, including current and former members of the armed forces, will have to compromise u ...
 
随机推荐
- linux输出之 printf   讲解--->与 echo 的区别
			
printf 你接触过printf没呢?? 如果你学了c语言的话你肯定就熟悉了,如果没有的话,不要急,,我保证你马上就会了! 我们来看一下案例: 这个可以看出来吧,echo输出的话会对文本换行哦,但是 ...
 - unity消息队列
			
解决一些当一些消息事件需要处理时,但是 相应的系统还没有初始化来解决的问题 每个系统执行层也有一个消息队列,这样系统没有做好初始化,不执行就好了. 参考:http://blog.csdn.net/ws ...
 - js录制视频并保存
			
使用webAPI录制视频 经测试, 只在谷歌和火狐浏览器里起效. 代码: const streamVideo = document.querySelector('.stream') const pla ...
 - PHP配置错误信息回报的等级
			
Error_reporting:配置错误信息回报的等级 1 E_ERROR 致命的运行错误 2 E_WARNING 运行时警告( ...
 - SpringMVC框架下实现分页功能
			
1.创建实体类Page.java @Entity public class Page { private int totalRecord;// 表示查询后一共得到多少条结果记录 private int ...
 - artDialog组件应用学习(三)
			
一.可以加载url的对话框 预览: 对话框编写代码 //弹出一个对话框,加载页面 function OpenBox(url, title, width, height) { seajs.use(['j ...
 - OLEDB 简单数据查找定位和错误处理
			
在数据库查询中,我们主要使用的SQL语句,但是之前也说过,SQL语句需要经历解释执行的步骤,这样就会拖慢程序的运行速度,针对一些具体的简单查询,比如根据用户ID从用户表中查询用户具体信息,像这样的简单 ...
 - 支持触屏的zepto轮播图插件
			
占个座,有时间再写,呵呵 关于zepto.js,官方标准版是不支持touch的.可以去github下载压缩包,里面有所有支持的模块.我用的zepto.js,是经过打包的,包括polyfill zept ...
 - 【Android】3.0 Android开发环境的搭建(2)——eclipse
			
1.0模拟机登录后,可能会一直停留在这个界面很久,那就去洗洗澡.睡睡觉.吃吃饭…… 2.0登录后可以在设置中改成中文,这样界面对国人来说比较友好. 3.0 虚拟机首页可以看到有短信息.拨打电话.浏览器 ...
 - js时间与时间戳之间的转换操作,返回天、小时、分,全家桶
			
1.将时间戳转换成时间 var formatDate = function(d) { var now = new Date(d); var year = now.getFullYear(); var ...
 
			
		
