Spring新注解&Spring整合Junit

Spring新注解#


作用:替换applicationContext中的

代码解析:#

1.项目结构

2. DataSourceConfig

package com.hzc.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

/**
    @PropertySource("classpath:jdbc.properties")
    用于加载.properties 文件中的配置
    相当于<context:property-placeholder location="classpath:jdbc.properties" />

    @Bean("dataSource")
    使用在方法上,标注将该方法的返回值存储到 Spring 容器中
    相当于<bean id="dataSource" class="..DruidDataSource">...</bean>
 */
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfig {
    @Bean("dataSource")
    public DataSource getDataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("${jdbc.driver}");
        dataSource.setUrl("${jdbc.url}");
        dataSource.setUsername("${jdbc.username}");
        dataSource.setPassword("${jdbc.password}");
        return dataSource;
    }
}

3.SpringConfig

package com.hzc.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
    @Configuration: 指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解
    @ComponentScan("com.hzc"): 用于指定 Spring 在初始化容器时要扫描的包。
        作用和在 Spring 的 xml 配置文件中的
        <context:component-scan base-package="com.hzc"/>一样
    @Import(DataSourceConfig.class): 导入其他配置类
        <import resource="classpath:other.xml" />


 */
@Configuration
@ComponentScan("com.hzc")
@Import(DataSourceConfig.class)
public class SpringConfig {

}

4.SpringTest

package com.hzc;

import com.hzc.config.SpringConfig;
import com.hzc.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class SpringTest {
    @Test
    public void test1(){
        ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService service = (UserService) ac.getBean("userService");
        service.helloRun();
    }
}

Spring整合Junit#

步骤:


NewSpringTest

package com.hzc;

import com.hzc.config.SpringConfig;
import com.hzc.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(value = "classpath:applicationContext.xml")
@ContextConfiguration(classes = {SpringConfig.class})
public class NewSpringTest {
    @Autowired
    private UserService userService;
    @Test
    public void test1(){
        userService.helloRun();
    }
}

posted @   IamHzc  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩