使用javaConfig配置spring
文章目录
1、ApplicationConfig(spring核心配置文件)
-
/** * spring核心配置文件 */ @Configuration @ComponentScan(basePackages = {"com.hdax"}) @EnableTransactionManagement public class ApplicationConfig { }
2、DataSourceConfig(数据源核心配置文件)
-
/** * 配置数据源 */ @Configuration @PropertySource(value = {"classpath:application.properties"}) @Data public class DataSourceConfig { @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.driver}") private String driverClassName; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Bean("dataSource") public DruidDataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(url); dataSource.setDriverClassName(driverClassName); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } }
3、MyBatisPlusConfig(持久层配置)
-
/** * mybatisPlus核心配置文件 */ @Configuration public class MyBatisPlusConfig { @Bean("sqlSessionFactory") public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) { MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactoryBean.setTypeAliasesPackage("com.hdax.entity"); return sqlSessionFactoryBean; } @Bean public static MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); mapperScannerConfigurer.setBasePackage("com.hdax.mapper"); return mapperScannerConfigurer; } @Bean public DataSourceTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } }
4、SpringMVC(核心配置文件)
-
/** * springMVC核心配置文件 */ @Configuration @ComponentScan(basePackages = "com.hdax.controller") @EnableWebMvc public class SpringMvcConfig implements WebMvcConfigurer { //静态资源放行 //<mvc:default-servlet-handler/> @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Bean public InternalResourceViewResolver viewResolver(){ InternalResourceViewResolver viewResolver = new InternalResourceViewResolver("/WEB-INF/jsp/",".jsp"); return viewResolver; } @Bean public FastJsonConfig fastJsonConfig(){ FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect); return fastJsonConfig; } @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter messageConverter = new FastJsonHttpMessageConverter(); messageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8,MediaType.TEXT_HTML)); messageConverter.setFastJsonConfig(fastJsonConfig()); converters.add(messageConverter); } }
5、WebApplicationInitializer(web核心配置文件)
-
/** * web核心配置文件 */ public class MyWebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { //加载application.xml(ApplicationConfig) @Override protected Class<?>[] getRootConfigClasses() { return new Class[]{ApplicationConfig.class}; } //加载spring-mvc.xml(SpringMvcConfig) @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{SpringMvcConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } }