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 ...
随机推荐
- mysql 的 find_in_set函数使用方法
举个例子来说: 有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1 ...
- js函数中参数的传递
数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...
- spring3.0注解
一.前言 在日常的开发过程中,我们基本上都是采用注解的方式进行开发,提升开发的效率.不管是struts2.spring.hibernate.或者ibatis,这样方便开发,减少配置文件的数量:有益于团 ...
- 再探CSS 中 class 命名规范
一直以来我的CSS 的 class命名都是比较随意,有时采用驼峰式.有时采用下划线,好像没有什么统一的标准,想到什么英文单词就拿过来用,这对于自己瞎写的小项目无伤大雅,遇到冲突的问题可稍加调整改变即可 ...
- ios retain 与 copy 的区别
.retain 与copy区别 retain 的仅仅是引用计数加1,但是并没有创建新的对象.它们的指针是指向相同的内存地址. copy 是创建一个新的对象作为原来对象的副本,新创建出来的引用计数并没有 ...
- NOIp 2014 #5 解方程 Label:数论?
题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .i ...
- 【BZOJ】2216: [Poi2011]Lightning Conductor
题意 给一个长度为\(n\)的序列\(a_i\),对于每个\(1 \le i \le n\),找到最小的非负整数\(p\)满足 对于任意的\(j\), \(a_j \le a_i + p - \sqr ...
- 【noiOJ】p7914(..)
08:不重复地输出数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入n个数,从小到大将它们输出,重复的数只输出一次.保证不同的数不超过500个. 输入 ...
- Python拾忆--多线程的socket服务器
阳光明媚的午后,想想最近要开始从写Java到写Python了,就随手打开电脑来体验一下Python与Java之间的不同吧~ 记得我还在上大二的时候,那个时候才开始学Java,最感兴趣的就是Java书最 ...
- Sumsets
题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=91209#problem/A 题意:给定一个整数几何S,找出一个最大的d,使得a ...