Spring - 基于JavaConfig装配

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();
    }
}

在这里插入图片描述

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值