小蔡学Java

Spring知识点总结一

2023-09-09 20:11 1160 0 SSM / SpringBoot 框架篇 Spring

1、Spring概念介绍

什么是Spring

Spring是开源的、轻量级的、企业级的应用集合框架,是包含众多工具方法的IOC容器

2、IOC与DI概念

什么是责任链

使用MVC开发的时候数据在各层之间传递,在业务上形成一个链条

基于责任链模式开发的缺点

当最底层的类被修改时,那么整个调用链的所有类都需要被修改。造成耦合度比较高。

什么是IOC

IOC就是控制反转,处理对象的创建 控制:对类实例化的控制,也就是创建对象这件事 反转:原本由程序员创建实例,现在由Spring进行实例化

什么是DI

DI就是依赖注入,处理属性的赋值 依赖:一个类在另一个类中作为全局属性时 注入:通过Spring容器为自己的属性注册一个值

3、IOC实现原理

IOC实现原理

1.XML解析技术读取配置文件

<bean id="u1" class="com.mdh.demo.User"></bean>

将上面的信息读入程序,一个是对象的id,一个是对象的类的全路径名

2.反射技术实例化对象,放到容器中

(1)首先获得类的字节码

Class clazz = Class.forName("com.mdh.demo.User");

(2)然后通过字节码实例化对象

Object obj = clazz.newInstance();

(3)最后将对象放到一个类似map的集合中

map.put("u1",obj);

3.工厂模式返回Bean对象

	public Object getBean(String name){
		Object obj = map.get(name);
		return obj;
	}

BeanFactory与ApplicationContext接口

BeanFactroy:Bean工厂 ApplicationContext:应用上下文

1.ApplicationContext是BeanFactroy的子类,提供了更多面向实际应用的功能,例如:对国际化的支持,支持资源的访问,支持时间的传播

2.BeanFactory采用延迟加载Bean,在第一次使用getBean方法获取Bean实例时才加载Bean;而ApplicationContext在自身被实例化时一次完成所有Bean创建

3.ApplicationContext类体系结构中,主要的实现类有两个 (1)ClassPathXmlApplicationContext从类路径加载配置文件 (2)FileSystemXmlApplicationContext从文件系统中加载配置文件(如c盘)

使用Spring

1.创建Maven项目,导入依赖包

	 <dependency>
		 <groupId>org.springframework</groupId>
		 <artifactId>spring-context</artifactId>
		 <version>5.2.3.RELEASE</version>
	 </dependency>
	 <dependency>
		 <groupId>org.springframework</groupId>
		 <artifactId>spring-beans</artifactId>
		 <version>5.2.3.RELEASE</version>
	 </dependency>

2.创建业务对象

3.在resource下配置xml

4.创建启动类或测试类进行使用

	public class App {
		public static void main(String[] args) {
			//1.1获取到Spring的上下文对象
			ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
			//1.2获取到Spring的上下文对象
			//BeanFactory beanFactory = new ClassPathXmlApplicationContext("applicationContext.xml");
			//BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

			//2.1从Spring(上下文)中获取到业务对象,通过bean的id
			//UserBean user = (UserBean) context.getBean("user");
			//2.2从Spring(上下文)中获取到业务对象,通过对象类型
			//UserBean user = context.getBean(UserBean.class);
			//2.3从Spring(上下文)中获取到业务对象,通过id+对象类型
			User user = context.getBean("user1",User.class);

			//3.使用业务对象
			System.out.println(user);
		}
	}

评论( 0 )

  • 博主 Mr Cai
  • 坐标 河南 信阳
  • 标签 Java、SpringBoot、消息中间件、Web、Code爱好者

文章目录