Spring框架是一个开源的J2EE应用程序框架,是管理bean的生命周期的轻量级容器(lightweight container)。
*bean:由spring容器管理的对象称为bean
*轻量级:使用spring容器的方式简单,便捷
*容器:spring在容器的内存中开辟一块空间,用来管理对象
Spring IOC介绍 概念:Ioc全称Inversion of Control,即“控制反转”,这是一种设计思想。Spring框架创建对象.由容器管理对象的生命周期。
IOC入门案例准备接口类Pet
package com.jt.demo3; public interface Pet { void hello(); }
Dog实现类
package com.jt.demo3; public class Dog implements Pet { public void hello(){ System.out.println("汪汪"); } }
准备spring.xml文件
编辑user测试对象
package com.jt.demo3; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class User { public static void main(String[] args) { //指定配置文件 String resourse="spring.xml"; //创建容器对象,加载配置文件 ApplicationContext context= new ClassPathXmlApplicationContext(resourse); //从容器中获取对象 //方式一 Dog dog=context.getBean(Dog.class); //方式二,获取id Dog dog1=(Dog) context.getBean("dog"); //调用对象 dog.hello(); dog1.hello(); } }IOC实现原理
容器的数据结构: K-V Map
程序执行过程:
1. 指定配置文件的名称.
2. 当Spring容器加载配置文件时.当按照顺序执行bean标签时,开始创建对象.
3. Spring通过bean标签中的class属性获取类型的路径,之后通过反射机制,实例化对象(必须有无参构造)
4. bean中的Id当做Map中的key, 将实例化的对象保存到Map中,当做value. 至此Spring容器启动成功!!!
5. 当用户需要获取对象时,可以通过key/或者类型 获取对象.
(1条消息) 项目中的常用注解_闪耀太阳的博客-CSDN博客
关于注解开发说明如果是2010年,那么还需要对xml配置文件有所了解,但是引入springboot之后,基本不需要使用xml配置文件了,一般都使用注解开发.
编辑配置类效果: 和配置文件类似
注解作用: 标识/标记
注解1: @Configuration
注解2: @Bean
注解3: @ComponentScan(“com.jt.demo4”) //包扫描注解: 让spring注解生效!!!
package com.jt.demo4; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration //标识当前类是配置类 @ComponentScan("com.jt.demo4") //包扫描注解: 让spring注解生效!!! public class SpringConfig { //作用: 和配置文件类似,管理对象!!! @Bean public Dog dog(){ return new Dog(); } }编辑测试类
package com.jt.demo4; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class User { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); Dog dog = context.getBean(Dog.class); dog.hello(); } }Spring中的单例和多例问题 概念
单例对象: Spring中保存一份对象.
多例对象: Spring容器负责创建多次对象. 内存中对象多份.
注解: @Scope(“singleton”)/@Scope(“prototype”)
结论:
1.Spring容器默认条件下,对象都是单例对象. 节省内存空间!!!
2. Spring容器提供了多例对象的方法,一般适用 数据库链接/资源链接等功能…
知识回顾:
懒汉式: 用户使用时创建.
饿汉式: 不管需不需要都要创建.
懒加载: 默认条件下Spring容器启动时都会实例化对象. 如果用户使用时创建对象,则使用懒加载机制!!!
规则:
1. spring容器启动,对象创建 不是懒加载
2. 当用户使用时创建对象. 是懒加载.
注意事项:
1.如果当前对象是多例模式, 则都是懒加载规则
2.懒加载的控制,只对单例对象有效!!!
单词:
configuration:配置
annotation:注释
scope:范围
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)