二、Sping快速入门
关于spring的一些好处,核心容器(Beans,Core,Context,Expression Language)的一些东西,我们先放在一边,今天我们学习关于spring的两大核心技术(IOC(控制反转/依赖注入),AOP(面向切面编程))中的IOC。
IOC可以从两个层面来看待,分别是控制反转和依赖注入,也可以说是一个过程,本人的理解是先控制反转,然后依赖注入,具体步骤如下:
- 创建新一个项目
- 创建一个Maven项目,
- 写入项目名,springTest即为项目名
- 首先导入jar包,第一行为jar包的版本,需要放入在下,其他为spring的一些jar包,需要放在下
<spring.version>4.0.2.RELEASE</spring.version>
<!-- spring框架包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
- 在main文件夹下创建java和resource文件,分别设置为类文件和资源文件
- 创建实体类HelloSpring
- 在resource下创建spring.xml 文件 ,需要加入有关spring的头部
<?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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 相当创建对象new
class 类的完全限定名
id 别名-->
<bean id="helloSpring" class="com.test.pojo.HelloSpring"></bean>
</beans>
- 在main文件夹下创建test类,作为测试类
- 快捷键创建测试类
完成测试类
//加载spring配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
//获取bean 此时的bean与spring.xml 中bean的id要一致
HelloSpring helloSpring =(HelloSpring) applicationContext.getBean("helloSpring");
helloSpring.show();
11.
显示就证明完成了基础的spring配置,证明了控制反转。
那依赖注入呢?
接下来在上个案例的基础上继续书写
- 回到HelloSpring实体类,这里要注意的是@Setter就相当于封装的setter方法
public class HelloSpring {
@Setter
private String msg;
public void show(){
System.out.println(msg);
}
}
- 到spring.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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 相当创建对象new
class 类的完全限定名
id 别名-->
<!--这个过程相当于控制反转-->
<bean id="helloSpring" class="com.test.pojo.HelloSpring">
<property name="msg" value="这是spring相当于依赖注入"></property>
</bean>
</beans>
- 回到test测试类中直接运行,结果截图如下: