Spring-03-HelloSpring
Hello Spring
1. 导入相关jar包
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
2. 编写相关代码
2.1 编写一个Hello实体类
public class Hello {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
@Override
public String toString() {
return "Hello{" +
"str='" + str + '\'' +
'}';
}
}
2.2 编写spring文件,beans.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">
<!-- 使用spring创建对象-->
<bean id="hello" class="com.kuang.pojo.Hello">
<property name="str" value="Spring"/>
</bean>
</beans>
2.3 测试
@Test
public void test(){
//用户实际调用的是业务层,不接触dao层
UserService userService = new UserServiceImpl();
((UserServiceImpl) userService).setUserDao(new UserDaoOracleImpl());
userService.getUser();
}
思考问题?
- Hello对象是谁创建的?
- Hello对象的属性是怎么设置的?
都是由Spring创建和设置的。
这个过程就叫控制反转(IOC):
控制:谁来控制对象的创建,使用Spring后由Spring创建;
反转:程序本身不创建对象,而是变成被动的接收对象;
依赖注入:利用set方法进行注入;
现在我们彻底不用在程序中改动了,要实现不同的操作,只需要在xml配置文件中进行修改,所有IOC,一句话搞定:对象由Spring创建,管理,装配!