用javaConfig注解创建spring 工程的基本配置
来源:互联网 发布:手机快递入库软件 编辑:程序博客网 时间:2024/05/19 08:04
最近刚看了spring实战第四部 自己也用javaconfig的方式创建了一个简单的web工程 记录下心得
首先用javaconfig创建spring web工程的时候 还是是否简单的 只需要继承AbstractAnnotationConfigDispatcherServletInitializer的实现接可以
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{RootConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; }}
RootConfig和WebConfig 就是spring的配置文件
如果用传统的web.xml结合javaconfig的方式 也是很简单的
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>spittr</display-name><!-- 使用java配置 --><context-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></context-param><!-- - Location of the XML file that defines the root application context. - Applied by ContextLoaderListener. --><context-param><param-name>contextConfigLocation</param-name><!-- <param-value>classpath:spring/application-config.xml</param-value> --><param-value>spittr.config.RootConfig</param-value></context-param><!-- 设置开发模式 --><context-param><param-name>spring.profiles.default</param-name><param-value>dev</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- <filter> <filter-name>springSecurityFilterChian</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> --><!-- - Servlet that dispatches request to registered handlers (Controller implementations). --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 使用java配置 --><init-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></init-param><init-param><param-name>contextConfigLocation</param-name><param-value>spittr.config.WebConfig</param-value></init-param><!-- <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-config.xml</param-value> </init-param> --><load-on-startup>1</load-on-startup><multipart-config><location>/tmp/spittr/uploads</location><max-file-size>2097152</max-file-size><max-request-size>4194304</max-request-size></multipart-config></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
重点是使用 AnnotationConfigWebApplicationContext 通知用注解的方式加载
<!-- 使用java配置 --><init-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></init-param>然后就是 RootConfig和WebConfig 这两个文件了
RootConfig.java 就相当 application-context.xml
@Configuration@ComponentScan(basePackages = {"spittr"}, excludeFilters = { @Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)})@Import({SecurityConfig.class, DataSourceConfigDataSource.class})@PropertySource("classpath:config.properties")//@ActiveProfiles("dev")public class RootConfig { @Autowired Environment env; @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSoure = new ReloadableResourceBundleMessageSource(); messageSoure.setBasename("classpath:message"); return messageSoure; }}@Configuration 表示该类为配置类
@ComponentScan注解扫描路径
@Import 导入其他的配置类
@@PropertySource 加载配置文件
WebConfig.java 相当于dispatcher-servlet.xml
@Configuration@EnableWebMvc@ComponentScan(basePackages = "spittr.web", useDefaultFilters = false, includeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class), @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = ControllerAdvice.class)})public class WebConfig extends WebMvcConfigurerAdapter { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/view/"); resolver.setSuffix(".jsp"); resolver.setExposeContextBeansAsAttributes(true); return resolver; } // 添加静态资源映射 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/res/**").addResourceLocations("/WEB-INF/resources/"); //registry.addResourceHandler("/js/**").addResourceLocations("/WEB-INF/resources/js/"); //registry.addResourceHandler("/css/**").addResourceLocations("/WEB-INF/resources/css/"); //registry.addResourceHandler("/images/**").addResourceLocations("/WEB-INF/resources/images/"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } /** * 编码 及 json解析 */ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { //主要针对 IE返回json为下载的问题 List<MediaType> jsonSupportedMediaTypes = new ArrayList<MediaType>(); jsonSupportedMediaTypes.add(MediaType.TEXT_PLAIN); List<MediaType> textSupportedMediaTypes = new ArrayList<MediaType>(); textSupportedMediaTypes.add(MediaType.TEXT_PLAIN); textSupportedMediaTypes.add(MediaType.TEXT_HTML); // 定义json解析器的返回类型 MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); mappingJackson2HttpMessageConverter.setDefaultCharset(Charset.forName("utf-8")); List<MediaType> supportedMediaTypes = new ArrayList<MediaType>(); supportedMediaTypes.addAll(jsonSupportedMediaTypes); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes); converters.add(mappingJackson2HttpMessageConverter); super.configureMessageConverters(converters); }}
基本这些简单的配置 spring web就搭建起来了
4 0
- 用javaConfig注解创建spring 工程的基本配置
- 关于spring data redis使用javaConfig的基本配置
- 第一个Spring JavaConfig注解配置bean
- Spring web基于javaconfig类配置 的web.XML配置
- spring-配置bean(2、基于JavaConfig的配置)
- Spring实战——XML和JavaConfig的混合配置
- 利用JavaConfig配置Spring及SpringMvc的开发环境
- Spring实战——XML和JavaConfig的混合配置
- Spring MVC 零配置 / Spring MVC JavaConfig
- springmvc的javaconfig的配置
- JavaConfig配置文件为Spring创建bean
- Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】
- spring mvc注解基本配置
- 《Spring实战》学习笔记(二)JavaConfig @Import 和 @ImportResource注解的使用
- JavaConfig @Import 和 @ImportResource注解的使用
- 【Spring学习28】JavaConfig配置bean
- Spring-Javaconfig-Mybatis-JNDI连接mysql配置
- spring boot 使用javaconfig配置mybatis,pagehelper
- 【Mybatis】——mybatis缓存
- service生命周期
- STM32CUBEMX 今天开始学习,标记一下
- [HNOI&AHOI2017] NOIP考挂蒟蒻的一篇游记 && 部分题解
- 自定义时钟View,表盘的绘制
- 用javaConfig注解创建spring 工程的基本配置
- switch proxy ——>Proxy SwitchyOmega
- CSDN博客新手使用方案
- angularjs二、路由配置
- 1.数据包分析技术与网络基础(1)
- MySQ基础L知识-基本操作
- JDK5新特性_枚举的注意事项
- 20170415STL014_STL_迭代器
- (转)Android自定义View 之 View的测量