概述
在Spring/springMVC项目中总会有一些xml配置如:web.xml ;application.xml 、dispatcher-servlet.xml 但是进入servlet3.0 后 这些配置都可以使用注解来完成;
本次环境使用Spring4xx + servlet3.0 、Tomcat8
除去web.xml文件
实现代码
这里需要继承WebApplicationInitializer 接口 具体请看:http://datum.iteye.com/blog/1537632 除去 dispatcher-servlet.xml |
代码
package com.wisely.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.*.controller") public class DispatcherServletConfig { @Bean public InternalResourceViewResolver internalResourceViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/classes/views"); viewResolver.setSuffix(".jsp"); return viewResolver; } }
除去application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.xx">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<context:property-placeholder location="classpath:db-config.properties"/>
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
其中数据库的相关配置从db-config.properties配置文件读取:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mydb
jdbc.username=root
jdbc.password=123456
代码
package com.wisely.config; import org.apache.commons.dbcp.BasicDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import javax.sql.DataSource; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.wisely",excludeFilters = {@ComponentScan.Filter(value = Controller.class)}) public class ApplicationConfig { @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean(destroyMethod = "close") public DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } /** * 必须加上static */ @Bean public static PropertyPlaceholderConfigurer loadProperties() { PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer(); ClassPathResource resource = new ClassPathResource("config.properties"); configurer.setLocations(resource); return configurer; } }
或者使用注解
@PropertySource("classpath:db-config.properties")
就不无需Bean
/** * 必须加上static */ @Bean public static PropertyPlaceholderConfigurer loadProperties() { PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer(); ClassPathResource resource = new ClassPathResource("config.properties"); configurer.setLocations(resource); return configurer; }
修改ContainerWebInitializer
package com.wisely; import com.wisely.config.ApplicationConfig; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration; public class ContainerWebInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(ApplicationConfig.class); servletContext.addListener(new ContextLoaderListener(rootContext)); AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext(); webContext.register(DispatcherServlet.class); ServletRegistration.Dynamic registration = servletContext.addServlet("dispatcher",new DispatcherServlet(webContext)); registration.addMapping("/"); registration.setLoadOnStartup(1); } }
转载于:https://my.oschina.net/u/1414315/blog/979336
最后
以上就是敏感小丸子为你收集整理的servlet3.0+SpringMVC出去所有xml配置:实现零配置的全部内容,希望文章能够帮你解决servlet3.0+SpringMVC出去所有xml配置:实现零配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复