【Spring】基于注解的案例测试

本文详细介绍了如何使用Spring框架的注解配置替代传统的XML配置,包括@Configuration、@ComponentScan、@Bean、@Import等注解的使用方法,以及它们在持久层与服务层的具体应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于上一篇博文,用注解的方式替代xml文件

用配置类替代xml文件

注解介绍

  • @Configuration 可以指明当前类为配置类,可以用来替代xml文件
    注意:当该类作为AnnotationConfigApplicationContext对象的参数传入时可以省去该注解
    例:ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfiguration.class);

  • @ComponentScan 指定spring在创建容器时要扫描的包
    属性:basePackages与value等价,用于指定要扫描的包的路径
    其作用等价于在半注解半xml工程时,xml文件中需要的以下配置:
    在这里插入图片描述

  • @Bean 将当前方法的返回值作为Bean对象存入spring容器中
    属性:value与name等价,用于指定bean的id,不设置则默认为方法名

  • @Import 用于导入其他配置类
    属性:用于指定其他配置类的字节码 xxx.class

注解使用示例

实现对xml文件中以下设置的替换
在这里插入图片描述

@Configuration
@ComponentScan(basePackages = "com.mj")
public class SpringConfiguration {
    @Bean("runner")
    @Scope("prototype")//runner避免线程干扰,需要设置为多例
    public QueryRunner createQueryRunner(@Qualifier("dataSource1") DataSource dataSource){
       //当有多个数据库连接时,可以在参数中用注解@Qualify指定数据库源的id
        QueryRunner runner=new QueryRunner(dataSource);
        return runner;
    }
    @Bean("dataSource1")
    public ComboPooledDataSource createDataSource(){
        try {
            ComboPooledDataSource ds = new ComboPooledDataSource();
            ds.setDriverClass("com.mysql.cj.jdbc.Driver");
            ds.setJdbcUrl("jdbc:mysql://localhost:3306/mytest?serverTimezone=GMT");
            ds.setUser("root");
            ds.setPassword("1234567890");
          return ds;
        }catch (Exception e){
            throw new RuntimeException(e);
        }

    }
}

持久层与服务层

@Repository("userDao")
public class UserDaoImpl implements IUserDao{
    @Resource(name = "runner")
    private  QueryRunner runner;
@Service("accountService")
public class AccountService {
    @Autowired
    IUserDao userDao;

测试代码

@Test
public void testFindAll(){
    //此处需要修改,将原有的调用xml文件的类换成调用注解配置类的类
    ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfiguration.class);
    //ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
    AccountService as=ac.getBean("accountService", AccountService.class);
    List<User> list=as.findAll();
    System.out.println(list);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值