Spring
今天给大家介绍以下几个内容:
- 注解驱动
- 注解的使用
- bean的加载控制
- 注解整合Mybatis
注解驱动
什么是注解驱动:
注解启动时使用注解的形式替代xml配置,将繁杂的spring配置文件从工程中彻底消除掉,简化书写。
注解的使用
- 启动注解功能:
- 加载第三方资源
- bean的非引用类型属性注入
- bean的引用类型属性注入
- 加载properties文件
- 纯注解格式:
- 第三方bean的配置与管理
bean加载控制
- 依赖加载
注解整合MyBatis步骤
- 修改mybatis外部配置文件格式为注解格式
@Configuration
public class SpringConfig {
}
- 业务类使用@Component声明bean,使用@Autowired注入对象
@Component("accountService")
public class AccountServiceImpl implements AccountService {
@Autowired
private AccountDao accountDao;
}
- 建立配置文件JDBCConfig与MyBatisConfig类,并将其导入到核心配置类SpringConfig
@Configuration
@Import({JDBCConfig.class, MybatisConfig.class})
public class SpringConfig {
}
- 开启注解扫描
@Configuration
@ComponentScan("dao,service")
//这是加载外部的配置文件
@PropertySource("classpath:jdbc.properties")
@Import({JDBCConfig.class, MybatisConfig.class})
public class SpringConfig {
}
- 使用AnnotationConfigApplicationContext对象加载配置项
public class App {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
AccountService accountService = (AccountService) ctx.getBean("accountService");
Account account = accountService.findById(1);
System.out.println(account );
}
}
这是其他两个配置文件的内容:
JDBCConfig:
public class JDBCConfig {
@Value("${jdbc.driver}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource")
public DruidDataSource getDataSource() {
System.out.println(driverClassName);
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
MybatisConfig:
public class MybatisConfig {
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(@Autowired DataSource dataSource) {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("domain");
return factoryBean;
}
@Bean
public MapperScannerConfigurer getMapperScannerConfigurer() {
MapperScannerConfigurer configurer = new MapperScannerConfigurer();
configurer.setBasePackage("dao");
return configurer;
}
}
以上就是本次分享的全部内容了,如果有不恰当的地方,欢迎指正。