目录
1.spring框架是java应用最广泛的框架,它的成功来源于理念,而不是技术本身。
Spring
1.spring框架是java应用最广泛的框架,它的成功来源于理念,而不是技术本身。
- IOC:控制反转
- AOP:面向切面编程
- DI:依赖注入
非侵入式设计:无需继承框架提供的任何一个类,更换框架,代码基本上不需要大改。
2.JavaBean
- springbean是Javabean的扩展,但是已经完全不是一回事了。
- 现在的Javabean作为对象,要求每个属性提供setget方法
- springbean只需要为接收设置的值注入提供set方法
3.Spring优势
- 低侵入/低耦合
- 声明式事务(基于AOP)
- 方便继承其他框架
- 降低了Java的开发难度(扯)
- 提供了Javaweb三层的每一层的解决方案
4.spring的作用
举例:装修
1.自己找工人,自己买材料,自己监工
2.找一个装修公司,拿钱完事,啥也不管(spring)
装修公司从哪里来
1.自己开一个
2.从已有的装修公司中找一个(spring)
5.IOC
- 控制反转:IOC容器(单例)
- 对象放在容器中,这个对象在我们当前项目中就可以共享,而且默认还是单例的
测试(测试类):
【1】加载配置文件
【2】拿到IOC里的对象
【3】验证是否单例
ture:所以是单例
【4】通过无参构造器-class
【5】属性的注入
- 有参构造器注入:根据参数名name √ 根据索引index 根据类型type(有参)
- setter注入:调用set方法来进行注入(常用)
直接注入 String name
复杂的数据类型如何set注入
(1)引用数据类型Address
DI:依赖注入 ref:依赖
结果:
(2)string【】数组
java.long.String 字符串
在 bean id=“user”标签里
(3)集合List<String>
(4)set<String>集合
(5)map<String,String>集合
键值对 entry
(6)properties
a.若果不强转
b.scop:定义bean的作用域
prototype:原型
singleton:单例(默认)
request:一次请求
session:一次会话
c.autowire:自动装配
(7)开启自动装配注解
拿:
如果根据类型:有两个的话
也可以指定注入哪一个
放入容器中:两种
(a)
把对象放入IOC容器
(b)
两种方法的使用:
6.类型转换器
先放进容器:
实体类属性:
日期:String->Date,会报错
建包建类
String转成Date
配置:把自定义的转换器注册进容器
id怎么写:
7.分层开发
分层注解:跟就类型匹配
controller
service
dao