目录:
Spring - 基于JavaConfig装配
1. 目录结构
2. 新建Maven项目,导入依赖
pom.xml
<!-- 依赖管理 -->
<dependencies>
<!-- 引入Spring框架的核心上下文依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.1.10</version>
</dependency>
<!-- 引入JUnit测试框架依赖,限定为测试范围 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
3. 创建Dao接口、实现类
UserDao.java
/**
* 用户数据访问接口。
* 该接口定义了操作用户数据的方法,用于与数据库或其他数据源进行交互。
*/
public interface UserDao {
/**
* 获取用户信息。
* 该方法用于从数据源中获取用户信息。具体实现可能涉及数据库查询、API调用等操作。
* 由于接口中方法没有具体实现,因此这里不详细说明参数和返回值。
*/
void getUser();
}
UserDaoImpl.java
/**
* 用户数据访问层的实现类。
* 该类实现了UserDao接口,提供了对用户数据的操作方法。
*/
@Repository
public class UserDaoImpl implements UserDao {
/**
* 获取用户信息的方法。
* 该方法目前仅用于演示目的,打印一条欢迎信息。
* 在实际应用中,这里应实现从数据库中获取用户信息的逻辑。
*/
@Override
public void getUser() {
System.out.println("Hello SpringConfig!!!");
}
}
3.1. 组件注解
注解名 | 描述 |
---|---|
@Component | 将一个类标记为Spring组件,表示它会被自动扫描并注册为一个Bean。 |
@Controller | 将一个类标记为Spring MVC的控制器,用于处理请求和响应。 |
@Service | 将一个类标记为业务逻辑的服务层组件,通常用于Service层的类。 |
@Repository | 将一个类标记为数据访问层组件,通常用于DAO层的类。 |
4. 创建Service接口、实现类
UserService.java
/**
* 用户服务接口。
* 该接口定义了用户相关操作的服务方法。
*/
public interface UserService {
/**
* 获取用户信息。
* 该方法用于从系统中获取用户的信息,具体实现可能涉及数据库查询或其他数据源访问。
* 由于接口方法没有返回值,因此该方法可能通过回调或异步方式返回用户信息。
*/
void getUser();
}
UserServiceImpl.java
/**
* 用户服务的实现类,提供用户相关操作的实现。
*/
@Service
public class UserServiceImpl implements UserService {
/**
* 自动注入用户数据访问对象,用于执行数据库操作。
*/
@Autowired
UserDao userDao;
/**
* 获取用户信息。
* 该方法委托给UserDao的getUser方法,实现从数据库中获取用户信息的具体逻辑。
*/
@Override
public void getUser() {
userDao.getUser();
}
}
4.1. 依赖注入注解
注解名 | 描述 |
---|---|
@Autowired | 自动注入依赖对象。Spring会自动查找匹配类型的Bean,并注入到对应的字段、构造函数或方法中。 |
5. 创建SpringConfig.java配置类
SpringConfig.java
/**
* Spring配置类,用于定义和管理Spring应用程序的组件扫描和配置。
*
* @Configuration 标记此类为一个配置类,指示Spring使用此类来加载bean的定义。
* @ComponentScan 注解用于自动扫描指定包下的组件,将它们注册为Spring管理的bean。
* 这里指定的包是"com.springjavaconfig",表示Spring将扫描该包及其子包下所有的组件。
*/
@Configuration
@ComponentScan("com.springjavaconfig")
public class SpringConfig {
}
6. 创建单元测试
UserServiceTest.java
/**
* 用户服务测试类
* 用于通过单元测试验证UserService类的功能是否正常。
*/
public class UserServiceTest {
/**
* 测试获取用户信息的方法
* 该方法通过Spring的依赖注入,获取UserService实例,并调用其getUser方法,
* 以验证用户服务的功能是否正确。
*/
@Test
public void getUserTest(){
// 创建Spring的上下文环境,加载配置
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
// 从上下文环境中获取UserService的实例
UserService userService = context.getBean(UserService.class);
// 调用getUser方法,执行测试
userService.getUser();
}
}