Spring SpringMVC Mybatis整合纯注解配置
@Configuration//声明这个是配置类 @EnableTransactionManagement//事务管理 @MapperScan({"com/rhl/mapper"})//扫描持久层 @ComponentScan("com.rhl.service") //根据定义的扫描路径,把符合扫描规则的类装配到springIOC容器中 @Import({MybatisConfig.class,JdbcConfig.class}) //导入外部配置 public class SpringConfig { }
JDBC抽取配置
@PropertySource("classpath:jdbc.properties") public class JdbcConfig { @Value("${jdbc.url}") private String url; @Value("${jdbc.password}") private String password; @Value("${jdbc.driver}") private String driver; @Value("${jdbc.username}") private String username; //设置连接池,数据源 @Bean public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } //设置事务管理器 (声明式事务) @Bean public PlatformTransactionManager transactionManager(DataSource dataSource){ //DataSourceTransactionManager搭配mybatis DataSourceTransactionManager ds = new DataSourceTransactionManager(); ds.setDataSource(dataSource); return ds; } }
Mybaits配置
public class MybatisConfig { @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){ SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setTypeAliasesPackage("com.rhl.pojo"); return factoryBean; }
这里可以用MapperScan注解代替
扫描dao层 // @Bean // public MapperScannerConfigurer mapperScannerConfigurer(){ // MapperScannerConfigurer msc = new MapperScannerConfigurer(); // msc.setBasePackage("com.rhl.dao"); // return msc; // } }
servlet配置
集成 AbstractAnnotationConfigDispatcherServletInitializer可以快速初始化
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer { protected Class<?>[] getRootConfigClasses() { //指定spring配置加载(根配置) return new Class[]{SpringConfig.class}; } protected Class<?>[] getServletConfigClasses() { //指定springmvc配置加载 return new Class[]{SpringMvcConfig.class}; } protected String[] getServletMappings() { //配置springmvc拦截路径为 / (全路径) return new String[]{"/"}; } //中文乱码过滤器 @Override protected Filter[] getServletFilters() { CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter(); encodingFilter.setEncoding("utf-8"); return new Filter[]{encodingFilter}; } }
@Configuration @ComponentScan("com.rhl.controller") @EnableWebMvc //开启json格式自动转换 public class SpringMvcConfig { }
浙公网安备 33010602011771号