spring入门
1、spring IOC的理解
IOC翻译成中文即控制反转
的意思,它不是一种技术,而是一种设计思想。在java开发中'IOC'意味这我们将设计好的POJO类的控制权交给容器
,而不是在我们程序中直接控制。传统java开发中,对象实例创建的控制权掌握的程序手中,也就是我们要得到一个对象实例,要在程序中手动的去new
出一个对象。而IOC有一个容器专门来创建这些对象实例,这样对象实例的创建权便掌握在了IOC容器
手中了。当程序中有了IOC容器
后,该容器中的所有对象都会被自动创建实例,当程序员需要用到这些对象实例时,只需要去获取就可以,而不用创建出对象实例。
2、spring环境配置
1、spring官网下载STS
这是一个集成了spring环境的eclipse IDE,当然也可以通过在原有的eclipse中去配置,不过我还直接用STS方便一点
2、使用maven创建工程,添加spring所需的依赖
所需添加的依赖jar,只要添加下面三个就可以,其他依赖的,maven会自动帮我们添加
- spring-context
- commons-logging-api
- log4j
3、spring入门示例
1、创建POJO类
public class User {
private int id;
private String username;
private String password;
public User() {
super();
System.out.println("User类的构造器被调用了");
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2、创建spring bean
配置文件
<?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">
<!--
1、一对bean标签即代表一个POJO类
2、属性id有程序员设置,一般来说建议与类名相同
3、属性class,即该类的全类名
-->
<bean id="user" class="priv.wfq.spring.model.User"></bean>
</beans>
3、创建测试类
public class UserTest {
@Test
public void testUserServiceImpl() {
//获取IOC容器
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
//通过ApplicationContext对象的getBean方法来获取对象实例
User user = (User) context.getBean("user");
System.out.println(user);
}
}
4、测试结果
1、获取IOC容器
,并拿到User对象实例
,并输出
我们可以发现,User对象的无参构造器被调用了
,最后也输出了User对象实例
2、只获取IOC容器
我们可以发现,程序中我们并没有去拿User对象实例
,但是它的构造器仍然被调用了,说明IOC容器
帮我们完成了User对象实例
的工作
4、总结
通过上述实验结果,我们可以得出IOC容器
会帮我们去做对象实例化的工作,对象的控制权由程序到IOC容器
。![]