Spring(004)-Bean装配
2024-08-31 07:26:22
一,问题,Bean找不到
代码
@Component
public class DemoClass { public int doSth() {
return ;
}
}
测试代码
@RunWith(SpringJUnit4ClassRunner.class)
public class DemoClassTest { @Autowired
private DemoClass demoClass; @Test
public void doSth() {
Assert.assertEquals(1, demoClass.doSth());
}
}
虽然DemoClass打了@Component注解,但是在测试代码中@Autowired是找不到到,因为DemoClass是没有被Spring装配到容器中。
Spring把Bean装配到容器主要有以下几种方式
二、通过代码方式
@Configuration注解的方式
新建一个类,增加@Configuration注解
@Configuration
@ComponentScan(basePackages = "com.purespring.demo")
public class DemoConfiguration { }
这里面还有一个@ComponentScan,这个注解告诉Spring要扫描的包,Spring会通过这个配置把这个包下面的组件全部装配到容器中。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = DemoConfiguration.class)
public class DemoClassTest { @Autowired
private DemoClass demoClass; @Test
public void doSth() {
Assert.assertEquals(1, demoClass.doSth());
}
}
测试通过。
@Bean的方式
@Configuration
public class DemoConfiguration {
@Bean
public DemoClass demoClass() {
return new DemoClass();
}
}
上面代码里面已经移除了@ComponentScan的注解,Spring不会做自动扫描,
@Bean会告诉Spring这个方法会返回一个对象,该对象需要被注册成一个Spring Bean
三、通过XML配置
增加xml配置,命名为demoConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.purespring.demo"></context:component-scan>
</beans>
在测试代码中引入配置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/demoConfig.xml")
public class DemoClassTest { @Autowired
private DemoClass demoClass; @Test
public void doSth() {
Assert.assertEquals(1, demoClass.doSth());
}
}
测试通过。
最新文章
- MySQL:Fabric 安装
- [知识笔记]Java 基本数据类型的大小、取值范围、默认值
- PYTHON 函数的普通参数
- Android Studio快捷键每日一练(3)
- (转载)关于web端功能测试的测试方向
- 日期操作类--Date类
- ASP.Net 获取当前时间,包含各种时间格式
- 关于HTML代码的转义
- Linux ln命令 - 建立文件/目录链接
- java基础之 IO流
- mycat 配置全局表
- ABP从入门到精通(1):aspnet-zero-core项目启动及各项目源码说明
- GCD之死锁体会
- 本地通知UILocalNotification
- 转载Alpine基础
- GBT 31000-2015 社会治安综合治理基础数据规范 数据项 编码
- Centos 下 JProfiler 9.1.1 安装 部署 及 使用
- 广度优先搜索(BFS)----------------(TjuOj1140_Dungeon Master)
- 内置函数bytes()
- 《Bilateral Multi-Perspective Matching for Natural Language Sentences》(句子匹配)