一、spring概述
术语 "Spring" 在不同的语境中意味着不同的东西。最开始用来指代Spring框架项目本身。随着时间的推移,其他Spring项目也被建立在Spring框架之上。大多数时候,当人们说 "Spring" 时,他们指的是整个项目家族(全家桶)。
Spring 框架被划分为多个模块。应用程序可以选择他们需要的模块。core 是核心容器的模块,包括一个配置模型和一个依赖注入机制。除此之外,Spring框架还为不同的应用架构提供了基础支持,包括消息传递、事务性数据和持久性以及Web。它还包括基于Servlet的 Spring MVC Web 框架,以及并行的Spring WebFlux 响应式 web 框架。
二、loc介绍
IoC也被称为依赖注入(DI)。它是一个过程,对象仅通过构造参数、工厂方法的参数或在对象实例被构造或从工厂方法返回后在其上设置的属性来定义其依赖关系(即它们与之合作的其他对象)。然后容器在创建 bean 时注入这些依赖关系。这个过程从根本上说是Bean本身通过使用直接构建类或诸如服务定位模式的机制来控制其依赖关系的实例化或位置的逆过程(因此被称为控制反转)。
在Spring中,构成你的应用程序的骨干并由Spring IoC容器管理的对象被称为Bean。Bean是一个由Spring IoC容器实例化、组装和管理的对象。否则,Bean只是你的应用程序中众多对象中的一个。Bean以及它们之间的依赖关系都反映在容器使用的配置元数据中。
org.springframework.context.ApplicationContext
接口代表Spring IoC容器,负责实例化、配置和组装bean。容器通过读取配置元数据来获得关于要实例化、配置和组装哪些对象的指示。配置元数据以XML、Java注解或Java代码表示。它可以让你表达构成你的应用程序的对象以及这些对象之间丰富的相互依赖关系。
三、创建spring程序
1.一个空的maven项目
2.导入模块
3.导入jar包
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
</dependencies>
<!--maven 配置默认的JDK版本-->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
4.编写实体类
public class User {
private String name;
private int age;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public void show(){
System.out.println(this.toString());
}
}
5.实例化一个容器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hi" class="com.lzh.pojo.User">
<property name="name" value="lzh"></property>
<property name="age" value="19"></property>
</bean>
</beans>
id
属性是一个字符串,用于识别单个Bean定义。class
属性定义了 Bean 的类型,并使用类的全路径名
6.使用容器
@Test
public void mytest(){
//解析beans.xml文件 , 生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//getBean : 参数即为spring配置文件中bean的id .
User hello = (User) context.getBean("hi");
hello.show();
}
ApplicationContext
是一个高级工厂的接口,能够维护不同Bean及其依赖关系的注册表。通过使用方法 getBean(String name, Class<T> requiredType)
,你可以检索到Bean的实例。
ApplicationContext
可以让你读取Bean定义并访问它们