java test怎么用_java的Test 如何使用@Autowired注解

  • Post author:
  • Post category:java


1、配置来至bean.xml

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = “classpath:bean.xml”) //表示在编译完成后在类路径下的beean.xml文件

public class AccountServiceTest {

@Autowired

private IAccountService as;

@Test

public void testFindAll() {

}

}

bean.xml的内容

http://www.springframework.org/schema/beans/spring-beans.xsd”>

pom.xml的配置

jar

org.springframework

spring-context

5.0.2.RELEASE

org.springframework

spring-test

5.0.2.RELEASE

commons-dbutils

commons-dbutils

1.4

mysql

mysql-connector-java

5.1.6

c3p0

c3p0

0.9.1.2

junit

junit

4.12

test

目录的展示

eff858f0550846eec232678eb8e161c8.png

2.配置来至Class

/**

* 使用Junit单元测试,测试我们的配置

Spring整合junit的配置

1.导入spring整合junit的jar(坐标)

2.使用Junit提供的一个注解把原有的mian方法替换了,替换成spring提供的@Runwith

3.告知spring的运行期,spring的ioc创建是基于xml还是注解的,并且我说明位置

@ContextConfiguration

localtions:指定xml文件的位置,加上classpath关键字,表示在类路径下

class:注定注解类所在的位置

当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes=SpringConfiguration.class)

public class AccountServiceTest {

@Autowired

private IAccountService as;

@Test

public void testFindAll() {

//init();

//3.执行方法

List accounts = as.findAllAccount();

for(Account account : accounts){

System.out.println(account);

}

}

SpringConfiguration类

Configration

作用:指定当前类是一个配置类

细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可用不写

ComponentScan

作用:用于通过注解指定spring在创建容器时要扫描的包

属性:

value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包我们使用次注解就等用于在xml中配置了:

Bean

作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中

属性:

name:用于指定bean的id。当不写时,默认值是当前放的名称

细节:

当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。

查找的方式和Autowired注解的作用是一样的。

Import

作用:用于导入其它的配置类

属性:

value:用于指定其他配置类的字节码

当我们使用Import的注解之后,有Import注解的类就是父配置类而,导入的都是子配置类

PropertySource

作用:用于指定properties文件的位置

属性:

value:指定文件的名称和路径

关键字:classpath,表示类路径下

*/

@ComponentScan(basePackages = “com.ruankao”)

@Import(JdbcConfig.class)

@PropertySource(“classpath:jdbcConfig.properties”)

public class SpringConfiguration {

}

public class JdbcConfig {

@Value(“${jdbc.driver}”)

private String driver;

@Value(“${jdbc.url}”)

private String url;

@Value(“${jdbc.username}”)

private String username;

@Value(“${jdbc.password}”)

private String password;

/**

* 用于创建一个QueryRunner对象

* @param dataSource

* @return

*/

@Bean(name = “runner”)

public QueryRunner createQueryRunner(@Qualifier(“dataSource2”) DataSource dataSource){

return new QueryRunner(dataSource);

}

/**

* 创建数据源对象

*/

@Bean(name= “dataSource”)

public ComboPooledDataSource createDataSource() {

try {

ComboPooledDataSource ds=new ComboPooledDataSource();

ds.setDriverClass(driver);

ds.setJdbcUrl(url);

ds.setUser(username);

ds.setPassword(password);

return ds;

} catch (PropertyVetoException e) {

//e.printStackTrace();

throw new RuntimeException(e);

}

}

/**

* 创建数据源对象

*/

@Bean(name= “dataSource2”)

public ComboPooledDataSource createDataSource2() {

try {

ComboPooledDataSource ds=new ComboPooledDataSource();

ds.setDriverClass(driver);

ds.setJdbcUrl(url);

ds.setUser(username);

ds.setPassword(password);

return ds;

} catch (PropertyVetoException e) {

//e.printStackTrace();

throw new RuntimeException(e);

}

}

}

jdbcConfig.properties

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/ruankaowang?characterEncoding=utf-8

jdbc.username=root

jdbc.password=123456



版权声明:本文为weixin_35765731原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。