Spring纯注解开发
程序员文章站
2022-03-06 20:57:28
...
纯注解的Spring ioc
使用步骤:
1.创建maven工厂,导入相关jar包。
spring-context
mysql-connector-java
spring-test
commons-beanutils
c3p0
junit
commons-dbutils
2.创建实体类、持久层和业务层代码。(业务层和持久层都需要注明类的注解。业务层使用持久层接口时,使用自动注入。持久层使用QueryRunner同理。)
3.创建数据库信息的properties文件
4.创建spring的主配置类SpringConfiguration.class,在该类中使用配置类注解、注解扫描包、properties文件的路径注解。
@Configuration
@ComponentScan(basePackages = "com.itheima")
@PropertySource("classpath:jdbcConfig.properties")
5.创建数据库连接的配置类,jdbcConfig.class.创建QueryRunner对象和DataSource对象,并将方法的返回值注入容器中。
@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(name = "runner")
@Scope("prototype")
public QueryRunner creatQueryRunner(DataSource dataSource){
return new QueryRunner(dataSource);
}
@Bean(name = "dataSource")
public DataSource creatDataSource(){
try {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass(driver);
ds.setJdbcUrl(url);
ds.setUser(username);
ds.setPassword(password);
return ds;
}catch (Exception e){
throw new RuntimeException(e);
}
}
6.创建测试类,测试方法。(注:利用spring整合junit)
1.使用junit提供的注解把main方法替换掉。
@RunWith(SpringJUnit4ClassRunner.class)
2.告知spring运行器,spring ioc是基于xml还是注解,并说明位置。
@ContextConfiguration(classes = SpringConfiguration.class)
3.自动注入接口类,利用接口类测试方法。
详细介绍
SpringConfiguration.class
该类是一个配置类,它的作用和bean。xml是一样的
spring中的新注解
Configuration
作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
ComponentScan
作用:用于通过注解指定spring在创建容器时要扫描的包
属性:
value:它和basePackages的作用是一样的。都是用于指定创建容器时要扫描的包。
我们使用此注解就等同于在xml中配置了:
<context:component-scan base-package="com.itheima"></context:component-scan>
Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:
name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:
当我们使用注解配置方法时,如果方法有参数,spring框架会去查找有没有可用的bean对象。
查找的方式和Autowired注解的作用是一样的
Import
作用:用于导入其他的配置类
属性:
value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就是父配置类,而导入的都是子配置类。
PropertySource
作用:用于指定properties文件的位置
属性:
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
上一篇: 详解Symfony2查询数据库的方法
下一篇: JSONAPI在PHP中的应用