SSM-新注解

Day5

Spring 新注解开发

原始注解对于非自定义的类无法进行注解进行配置,只能通过xml'文件配置

原始注解不能进行代替的配置又:

  • 非自定义的Bean配置
  • 加载properties文件配置
  • 组件扫描的配置
  • 引入其他文件 import

新注解

  • @Configuration 指定当前的类是一个Spring配置类,当创建容器时会从该类上加载注解
  • @ComponentScan 取代组件扫描标签
  • @Bean 使用在方法上,将该方法的返回值存放到容器中
  • @PropertySource 加载.properties文件中的配置
  • @import 用于导入其他配置类

完全替代Xml配置文件

创建一个核心配置的类替代一个xml文件

  • 用一个类去替代核心配置的xml文件
  • 用注解取替代标签
//用一个类去替代xml配置文件
//用注解的方式替代标签
//标志该类是一个Spring核心配置类
@Configuration
@ComponentScan("cn.gyk") //配置组件扫描
@PropertySource("classpath:Jdbc.properties")
public class springConfiguration {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Bean("dataSource")//Spring会将当前方法的返回值以指定名称存放到Spring的容器中
    public DataSource getDataSource() throws PropertyVetoException, SQLException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass(driver);
        dataSource.setJdbcUrl(url);
        dataSource.setUser(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
 

通过@Import(dataSourceConfiguration.class)加载分配置文件

到此为止就可以实现Spring全注解开发了。

Spring整合Junit

原始测试方法的问题

每个测试方法都有如下两个行代码

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
IAccountService as = ac.getBean("accountService",IAccointService.class);

这两行代码的作用是获取容器,不能删掉

  • 上述问题解决思路,SpringJunit负责创建Spring容器,但是需要将配置文件告诉Junit
  • 将需要进行测试的Bean直接在测试类中进行注入

Spring集成Junit步骤

  1. 导入Spring集成Junit的坐标
  2. 使用@RunWith注解替换原来的运行期 先找Spring,Spring再去找Junit
  3. 使用@ContextConfiguration指定配置文件或者配置类
  4. 使用@Autowired注入需要测试的对象
  5. 创建测试方法进行测试

导入坐标需要先导入Junit坐标 后导入Spring-test

@RunWith(SpringJUnit4ClassRunner.class)
//该注解先通过Spring去初始化容器,加载配置文件,再让Spring去找Junit进行测试
//xml文件配置注解情况下配置文件加载用于测试列
@ContextConfiguration("classpath:applicationContext.xml");
//注解配置情况下配置文件加载用于测试类
@ContextConfiguration(classes = springConfiguration.class)

经过上述操作就已经开启了spring容器,之后直接通过@Autowired注解直接对需要测试的进行,十分便捷

posted @ 2022-05-17 23:02  破忒头头  阅读(34)  评论(0)    收藏  举报