对于Spring
项目入门案例,我们得先分析思路
然后再代码实现
。
1. Spring项目入门案例思路分析
(1)Spring
是使用容器来管理bean对象的,那么管什么?
- 主要管理项目中所使用到的类对象,比如(
Service
和Dao
)
(2)如何将被管理的对象告知IOC
容器?
- 使用配置文件
(3)被管理的对象交给IOC
容器,要想从容器中获取对象,就先得思考如何获取到IOC
容器?
-
Spring
框架提供相应的接口
(4)IOC
容器得到后,如何从容器中获取bean
?
- 调用
Spring
框架提供对应接口中的方法
(5)使用Spring
导入哪些坐标?
- 用别人的东西,就需要在
pom.xml
添加对应的依赖
2. Spring项目入门案例代码实现
需求分析:将
UserServiceImpl
和UserDaoImpl
交给Spring
管理,并从容器中获取对应的bean
对象进行方法调用。1.创建
Maven
的java
项目
2.pom.xml
添加Spring
的依赖jar包
3.创建UserService
,UserServiceImpl
,UserDao
和UserDaoImpl
四个类
4.resources
下添加spring
配置文件,并完成bean
的配置
5.使用Spring
提供的接口完成IOC
容器的创建
6.从容器中获取对象进行方法调用
步骤1:创建Maven
项目
步骤2:添加Spring
的依赖jar
包
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.15.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
步骤3:添加案例中需要的类
创建UserService
,UserServiceImpl
,UserDao
和UserDaoImpl
四个类
public interface UserService {
public void save();
}
public class UserServiceImpl implements UserService {
public UserDao userDao = new UserDaoImpl();
public void save() {
System.out.println("User Service save ....");
userDao.save();
}
}
public interface UserDao {
public void save();
}
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("User Dao save .....");
}
}
步骤4:添加spring
配置文件
resources
下添加spring
配置文件applicationContext.xml
,并完成bean
的配置:
步骤5:在配置文件中完成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">
<!--bean标签标示配置bean-->
<!--id属性标示给bean起名字-->
<!--class属性表示给bean定义类型-->
<bean id="UserDao" class="com.dcxuexi.dao.impl.UserDaoImpl" />
<bean id="UserService" class="com.dcxuexi.service.impl.UserServiceImpl" />
</beans>
注意事项:bean
定义时id
属性在同一个上下文中(配置文件)不能重复
步骤6:获取IOC
容器
使用Spring
提供的接口完成IOC
容器的创建,创建SpringApp
类,编写main
方法
public class SpringApp {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
步骤7:从容器中获取对象进行方法调用
public class SpringApp {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//UserDao userDao = (UserDao) context.getBean("UserDao");
//userDao.save();
UserService userService = (UserService) context.getBean("UserService");
userService.save();
}
}
步骤8:运行程序
测试结果为:
Spring
的IOC
入门案例已经完成,但是在UserServiceImpl
的类中依然存在UserDaoImpl
对象的new操作,它们之间的耦合度还是比较高,这块该如何解决,就需要用到用到的DI:依赖注入
。