Spring认识

Spring 
主要作用:整合现在主流框架,使框架之间的调用更加的顺畅、快捷、方便管理。
Spring的IOC(控制反转)
定义:把对象的创建初始化和销毁的工作都交给spring容器来做,从此程序员无需关注对象的创建过程。

配置文件的默认的名称就是 applicationContext.xml
<bean id="hello"  class="domain.Hello"></bean>
一个类就是一个bean,id是首字母小写的类名,class是包名+类名
启动容器:ApplicationContext  context = new ClassPathXmlApplicationContext("applicationContext.xml");
获取对象:Hello hello = (Hello) context.getBean("hello");
IOC的实现过程:当容器启动的时候首先会先加载applicationContext.xml,进行顺序加载。
当遇到Bean标签的时候 根据class的路径找到相应的实体类并且创建对象,把创建出来的对象放到spring容器里。spring容器内部维护了一张MAP<key,value>表, 对象的ID就是MAP中额Key ,对象就是value保存在spring器中。如果想获得相应的对象,则通过getBean("ID")就能得到应用的对象
Spring对象创建的原理:运用反射
//domain.Hello
Class.forName(Hello.class.getName()).newInstance();
spring底层通过反射调用的形式创建对象,所以实体类中必须要有无参构造。编写构造方法的时候一定要加无参构造

spring容器创建对象的四种方式:

1.通过默认的构造方法创建对象
2.通过静态工厂创建对象
<bean id="calendar" class="factory.StaticFactory"  factory-method="getTime"></bean>
3.实例工厂创建对象
<bean id="newInstanceFactory"  class="factory.NewInstanceFactory"></bean>
<bean id="newCalendar" factory-bean="newInstanceFactory"  factory-method="getTime"></bean>
实例工厂和静态工厂最大的区别在于 工厂对象是否被创建
4.spring工厂创建对象

需要实现一个接口  然后自动调用 getObject() 


当在默认的条件下 spring容器创建对象是单例的
好处 能够提高计算机的性能,减少内存的压力。
懒加载:当需要使用某个对象的时候,这个对象才会被创建。
Spring默认的是立即加载,添加lazy-init="true"进行懒加载。
对象的属性scope为prototype的时候多例对象 立即加载会失效,会变成懒加载。


DI依赖注入(给属性赋值)
为属性赋值的方式:
1.通过set方法为属性赋值。
2.用过构造器为属性赋值。
set方法为属性赋值:要想为属性赋值 必须要有set方法,容器通过形参传递参数给实参  属性才能正确赋值
<bean id="person" class="domain.Person">
<property name="name" value="1606"></property>
<property name="age" value="2"></property>
</bean>
SpringIOC和DI的意义
传统的设计模式中为了实现MVC分层的设计模式 需要编写大量的代码才能实现代码的分层,使用spring能简单实现我们的分层设计。实现了解偶。
spring容器他是一个轻量级的框架,配置简单。实现松耦合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值