一.Spring的概述
Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:
反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC
和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的
Java EE 企业应用开源框架。
二.Spring 的IOC控制反转:
2.1 概念
控制反转,把原理new对象的这种方式转换成了,spring通过反射创建对象的方式,
spring创建完的对象放到一个容器中,谁需要就给谁注入进去.
简单说:把创建对象和管理对象的权利交给spring
2.2如何来实现IOC进行创建对象和管理对象
2.3控制反转的入门案例
1.准备环境
- 导入spring所需要的4个jar
在idea里我们就需要导入spring-context
原因:依赖
<!--如果要做一个spring ioc 需要导入4个jar-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2 创建一个UserService, 里面有一个属性username ,有一个play的方法; 接下来使用spring来创建改对象并给该对象的username属性值设置值. 最后使用junit进行测试.
实现步骤:
1.编写一个类UserService
public class UserService {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
//玩的方法
public void play(){
System.out.println(username+"喜欢玩篮球");
}
}
2.编写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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--创建Demo1_UserService对象
以下的配置作用相当于 UserService userService = new UserService();
对象创建完放到了spring容器中
-->
<bean id="userService" class="com.sen.ioc.UserService">
<!--给username设置属性
以下配置相当于 userService.setUserName();
-->
<property name="username" value="蔡徐坤"/>
</bean>
</beans>
3.编写一个测试类
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.Assert.*;
public class UserServiceTest {
//对UserService进行测试, 获取spring创建的对象获取该对象的属性
@Test
public void test01(){
//传统方式:
//UserService service = new UserService();
//service.setUsername("老王");
//service.play();
//spring的ioc方式
//1.获取spring的容器
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
//2.调用容器的getBean("userService") 得到UserService的对象 (已经有属性了)
UserService userService = (UserService) context.getBean("userService");
//3.调用他的play方法
userService.play();
}
}