spring
核心功能:
1.loC(控制反转):将对象的管理权限交给spring容器,管理生命周期
2.DI(依赖注入):管理IoC容器中对象的依赖关系
3.AOP(面向切面的编程):对面向对象的补充,解决系统级别的非核心功能耦合度问题
4.整合其他框架
注册对象到spring容器中(IoC容器),受spring管理,默认情况下,注册对象为单例(全局对象唯一)
- class:对象的全限定类名,会自动创建对象
- id:当前对象的名称,不能重复,外界通过id获取到该对象,不能有特殊字符
<beab id="student" class="com.yd.Student"></beab>
<!--student 为com.yd.Student的别名-->
- scope:设置对象的作用范围,设置对象的模式
1.singleton:单例,默认情况下都为singleton
2.prototype:原型模式,每次通过getBean获取时,都会实例化一个新对象
web模式:
3.request:对象的作用范围为一次请求
4.session:对象作用范围为一次会话 - init-method:指定对象的初始化方法,值就是对象中某个方法名,该方法不用手动调用,会在创建对象完成后,自动调用
<bean>
init-method id="自己提供的初始化方法名称"
</bean>
- destroy-method:销毁的方法,对象销毁之前自动执行的方法
<bean>
destory-method id="自己提供的销毁方法名称"
</bean>
/*直接使用时,会猝死,即还没来得及调用销毁方法时,程序运行结束
* 所以我们需要手动关闭容器
*关闭容器时,会通知容器中所有的对象,当对象去调用销毁的方法,进行扫尾工作,例如:保存数据、释放资源等
*/
ApplicationContext ctx=new ClassPathXmlApplicationContext("spring.xml");//获取到spring容器
//ApplicationContext为接口,所以需要使用其的实现类
AbstractApplicationContext absCtx=(AbstractApplicationContext) ctx;
absCtx.close;
//先执行销毁方法,在执行关闭容器方法
spring容器中对象的生命周期:
1.创建对象,此时会调用构造方法,默认调用无参构造方法
2.执行初始化方法,初始化对象,init-method
3.在对象被销毁时,调用销毁方法 ,destroy-method
- lazy-init:延时加载(懒加载),true:获取对象时才会创建对象,false:加载容器时,就会创建该对象。 默认为false