spring_01
1、框架
	1、框架是解决什么问题的?
		1、框架是用来解决代码冗余的问题
		2、有利于团队的协作开发
		3、框架是用来解决低耦合和高内聚的问题
		4、解决健壮性和安全性
	2、STRUTS2和hibernate分别解决框架什么问题的?
		struts2是一个mvc框架
		hibernate是解决数据库的操作:ORMAPPING
	3、如何选择一种更好的框架?
		1、应该选择一个大众化的产品
		2、健壮性和安全性都比较好的产品
		3、有利于团队开发
		4、还在维护阶段的
2、spring
	1、说明
		是一个架构性的框架
	1、spring的安排
		day01  spring Core   IOC和DI容器
		day02和day03的上午  spring AOP
		day03的下午和day04   重新回顾struts2
		day05  struts2,hibernate,spring的整合:源代码级别的讲解
	2、springCore
		1、知识点有两个IOC,DI
		2、IOC:
			1、概念
			      把一个对象的创建、初始化、销毁等工作交给spring容器来管理
			2、好处
			      程序员只要从spring容器里把对象提取出来就OK了,至于对象是怎么样在spring容器中创建出来的,不是
			      程序员关注的问题
			3、例子
				1、创建一个类
				2、把一个类放入到spring容器中
					<?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-3.0.xsd">
					    <!-- 
					    	把一个类放入到spring容器中,专有名词叫bean,beans意味着可以放很个bean
					     -->
					    <!-- 
					    	bean表示一个类
					    		id是bean的唯一标识
					    		class类的全名
					     -->
					    <bean id="helloWorld" class="com.tedu.big.spring1507.ioc.createobject.HelloWorld"></bean>
					</beans>
				3、启动spring容器,让spring容器创建该类的对象
				4、从spring容器中 把该对象提取出来
				5、对象调用方法
		3、IOC的说明
			1、启动spring容器
				创建一个spring容器的对象
			2、spring容器为bean创建对象
				1、默认的构造函数
					在spring容器内部调用了该bean的构造函数
				2、简单工厂模式
					构造函数的代码是由程序员完成的,spring容器调用的是工厂类的静态方法
				3、实例工厂模式
					spring容器先创建出一个工厂实例,利 工厂方法从而创建出对象
4、如果一个bean的scope为"prototype",该bean是多实例,那么在第4步的时候创建对象
			3、执行spring容器中的bean的init方法
			4、把一个对象从spring容器中提取出来
				如果一个bean的scope为"prototype",这个时候才要创建对象
				如果一个bean的scope为"singleton",那么不论取多少次都是同一个对象
			5、对象调用方法
			6、在关闭掉spring容器之前,执行该bean的detroy方法
				只有执行applicationContext.close/desotry方法的时候才能调用destroy方法
				该bean必须是单实例的
			7、关闭spring容器
		4、DI:
			1、概念
				依赖注入:给一个类中的属性赋值的过程
			2、一个类中属性类型
				public class Person{
					private String id;
					private Long length;
					private Student student;
					private List list;
					private Set set;
					private Map map;
					private Properties properties;
				}
			3、给属性注入的方式
				1、xml
					1、setter方法
					2、构造器
				2、注解
					1、注意事项
						1、注解是一个标识是针对程序员说的
						2、有注解,就应该有注解解析器
						3、注解不能单独存在
						4、注解的应用是为了简化开发,减少冗余
					2、依赖注入的注解
						@Resource  一般情况下标注在属性上
					3、类扫描的注解
						@Compontent  
						@Controller  标注在action层的
						@Service     标注在service层
						@Repository  标注在dao层
		5、IOC和DI的意义
			1、例子
				文档管理系统
				Document:是一个抽象的文档
					read
					write
				WordDocument:是一个具体的文档
				PDFDocument:是一个具体的文档
				ExcelDocument:是一个具体的文档
DocumentManager:文档的管理类
					Document document;
					read
					write
			2、MVC例子
			3、意义:
					在代码端的完全的面向接口编程
		6、当IOC和DI结合在一起的时候,执行顺序(默认的配置)
			1、启动spring容器
			2、实例化所有的beans
			3、给所有的bean装配属性
			4、执行bean的init方法
			5、从spring容器中把该bean的对象提取出来
			6、对象调用方法
说明:
	spring容器创建对象的静态工厂利用了简单工厂模式
	spring容器创建对象的实例工厂利用了抽象工厂模式
如果一个类是单实例的那么在整个类中加一属性,该属性如果要存放数据,一定要考虑数据的安全性和并发性的问题。
把配置文件中的scope的属性由“singleton”改变成“prototype”就编程了多实例。
	lazy-init="true"   延迟加载
身份证照片
	个人征信报告,
	学信网,
try{
	加内存锁;
	当前操作在执行,不允许别的操作执行;
    for(Lend l : lends){
	    try{
操作 l 逻辑;
}catch{
		l.set();
		mgr.save(l);
		记录日志(包括记录l信息);
	    }
    }
    去除内存锁;
}catch{
}finally{
	解锁;
}
spring_01的更多相关文章
- spring_01概念及案例
		1.什么是IOC? IOC概念:inverse of Controll,控制反转,所谓控制反转,就是把创建对象和维护对象关系的权利从程序中转移到spring的容器中(applicationContex ... 
- Spring_01 spring容器、控制反转(IOC)、依赖注入(DI)
		目录 1 什么是spring框架 2 spring框架的特点 3 spring容器 3.1 什么是spring容器 3.2 spring容器创建对象的编程步骤 3.4 spring容器创建对象的方式 ... 
- 阶段3 2.Spring_01.Spring框架简介_06.spring的体系结构
		资料内提供了spring 的开发包 docs:文档 libs:jar包 schema:约束 
- 阶段3 2.Spring_01.Spring框架简介_05.spring的优势
- 阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
- 阶段3 2.Spring_01.Spring框架简介_03.spring概述
- 阶段3 2.Spring_01.Spring框架简介_02.今日课程内容介绍
		spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ... 
- 阶段3 2.Spring_01.Spring框架简介_01.spring课程四天安排
		spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ... 
- Spring之ClassPathResource加载资源文件
		先看Demo: 1 @Test 2 public void testClassPathResource() throws IOException { 3 Resource res = new Clas ... 
随机推荐
- [转]error while loading shared libraries 错误解决办法总结
			http://blog.csdn.net/wallwind/article/details/7580659 错误信息: error while loading shared libraries: li ... 
- 20145304 Java第七周学习报告
			20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ... 
- 【BZOJ】1109: [POI2007]堆积木Klo
			题意 \(n(1 \le n \le 100000)\)个数放在一排,可以一走一些数(后面的数向前移),要求最大化\(a_i=i\)的数目. 分析 分析容易得到一个dp方程. 题解 \(d(i)\)表 ... 
- lsof在运维中的应用
			场景一:文件系统使用率很高,但是找不到具体哪个文件占用了空间 原因:在unix系统中,如果有两个进程同时使用一个文件,如果其中一个进程删除了这个文件,但是这个文件此刻不会正真被释放,一直要等待引用它的 ... 
- SQL 学习笔记
			1.判断数据库中某个值是否为null(而不是'null',空字符串'',若干个空格' ') 一定不能用=null 或 !=null,而要用is null 或 is not null. 2.在sqlse ... 
- AJAX.JSONP 跨域
			var Request = { timeout: 10 * 1000, // 10秒超时 status: 10, statusenum: { Wait: 10 ... 
- 李洪强iOS经典面试题137-内存管理
			内存管理 ARC处理原理 ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autoreleas ... 
- 数据结构 C++ 单链表 一元多项式的相加
			#include <iostream> using namespace std; struct Node { double coe; //系数 int exp; //指数 Node *ne ... 
- 关于Response.redirect()方法
			1. sendRedirect 后面要加上return.2. sendRedirect 执行过程是先转向还是先执行后续代码再转向?答: 先执行代码再转向,在一个sendRedirect后面不能再有其他 ... 
- BizTalk开发系列(二十二) 开发自定义Map Functoid
			尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ... 
