Spring入门
一、为什么要使用Spring
Spring使Java编程对每个人来说都更快、更容易、更安全。Spring对速度、简单性和生产力的关注使其成为世界上最流行的Java框架。
二、Spring的两大核心
- IOC IoC也被称为依赖注入(DI)
- AOP 面向切面的编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象的编程(OOP)。
三、什么是IOC?
IoC也被称为依赖注入(DI)。它是一个过程,对象仅通过构造参数、
工厂方法的参数或在对象实例被构造或从工厂方法返回后在其上设置的属性来定义其依赖关系
(即它们与之合作的其他对象)。然后容器在创建 bean 时注入这些依赖关系。
这个过程从根本上说是Bean本身通过使用直接构建类或诸如服务定位模式的机制来控制其依赖关系的实例化或位置的逆过程
(因此被称为控制反转)。
简单的来说就是程序员将创建对象由原来通过new关键字来创建对象,现在变为了直接交由spring容器来创建并管理对象。
四、Spring中的Bean
一个Spring IoC容器管理着一个或多个Bean。这些Bean是用你提供给容器的配置元数据创建的(例如,以XML 定义的形式)。在容器本身中,这些Bean定义被表示为 BeanDefinition 对象,它包含(除其他信息外)以下元数据。
在容器本身中,这些Bean定义被表示为 BeanDefinition 对象,它包含(除其他信息外)以下元数据。
一个全路径类名:通常,被定义的Bean的实际实现类。
- Bean的行为配置元素,它说明了Bean在容器中的行为方式(scope、生命周期回调,等等)。
- 对其他Bean的引用,这些Bean需要做它的工作。这些引用也被称为合作者或依赖。
- 要在新创建的对象中设置的其他配置设置—例如,pool的大小限制或在管理连接池的Bean中使用的连接数。
五、如何搭建一个Spring工程?
-
第一步: 创建一个Maven工程
-
第二步: 引入Spring的依赖
<dependencys>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.20</version>
</dependency>
</dependencys>
- 第三步: 配置Spring的配置文件 配置文件的名称为
applicationContext.xml
具体内容如下:
<?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 属性是一个字符串,用于识别单个Bean定义。
class 属性定义了 Bean 的类型,并使用类的全路径名。
-->
<bean id="helloSpring" class="com.atguigu.HelloSpring">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!--
<bean id="..." class="...">
collaborators and configuration for this bean go here
</bean>
-->
<!-- more bean definitions go here -->
</beans>
- 第四步: 编写业务代码
public class HelloSpring {
public void say(){
System.out.println("Hello World");
}
}
- 第五步: 测试Spring是否配置成功。
public class TestSpring {
@Test
public void TestNew() {
// 创建spring工厂加载bean
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 通过类名反射获取到bean
HelloSpring helloSpring = context.getBean(HelloSpring.class);
// 执行bean方法
helloSpring.say();
// 4.关闭资源
}
}
- 第六步:查看运行结果