开启注解驱动
<?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
https://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.asaawan"/>
</beans>
整合第三方技术
JdbcConfiguration 配置
public class JdbcConfiguration {
@Value("${jdbc.driverClass}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource")
public DataSource createDataSource(){
System.out.println(driverClassName);
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(driverClassName);
source.setUrl(url);
source.setUsername(username);
source.setPassword(password);
return source;
}
}
MyBatisConfiguration 配置
public class MyBatisConfiguration {
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(@Autowired DataSource dataSource) {
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
ssfb.setDataSource(dataSource);
ssfb.setTypeAliasesPackage("com.asaawan.domain");
return ssfb;
}
@Bean
public MapperScannerConfigurer getMapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.asaawan.mapper");
return msc;
}
}
SpringConfiguration 配置
@Configuration
@ComponentScan("com.asaawan")
@PropertySource(value = {"classpath:jdbc.properties"},ignoreResourceNotFound = true)
@Import({JdbcConfiguration.class, MyBatisConfiguration.class})
public class SpringConfiguration {
}
测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountServiceTest {
@Autowired
private AccountService service;
@Test
public void testFindAll(){
Account account = service.findById(1);
System.out.println(account.getUserName());
Assert.assertEquals("zsf",account.getUserName());
}
}
业务使用
public class App {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
AccountService service = (AccountService) ctx.getBean("accountService");
List<Account> accounts = service.findAll();
accounts.forEach(System.out::println);
}
}
bean 常用注解
声明一个bean可以使用哪些注解?
- @Component
- @Controller
- @Service
- @Repository
定义bean的作用域使用哪个注解?
使用哪个注解配置第三方资源?
注入非引用数据类型使用哪个注解?
注入引用数据类型可以使用哪个注解并且它们的特点是啥?
- @Autowired
- @Autowired 默认按类型装配,指定 @Qualifier 后可以指定自动装配的 bean 的 id
- @Resource
通过那个注解来加载外部的属性文件?
@Configuration注解有什么作用?
@ComponentScan注解有什么作用?
@Import注解的作用是什么?