无配置文件 搭建
今天搞了个spring3.1+servlet3 无配置项目,事到此时终于算出了一个小东东了
记录于此,已被后用。
1.创建项目,使用eclipse+tomcat7
2.导入spring的包,除此之外还导入了asm-2.2.2.jar、cglib-nodep-2.1_3.jar(这个别导入hibernate的了)、jstl-1.0.2.jar、jackson-all-1.9.1.jar、commons-logging-1.1.1.jar、mysql-connector-java-5.1.12-bin.jar
3.删除了web.xml,准备二个文件:
? ?jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_smg?useUnicode=true&charaterEncoding=UTF-8jdbc.username=rootjdbc.password=****
??properties-config.xml
? ??<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <context:property-placeholder location="classpath:/com/acme/jdbc.properties"/> <mvc:resources mapping="/static/**" location="/static/"/> </beans>
?4.编写启动容器加载的java文件和java 程序代替的配置
Initializer.java
package com.acme.web;
import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRegistration;import org.springframework.web.WebApplicationInitializer;import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;import org.springframework.web.servlet.DispatcherServlet;public class Initializer implements WebApplicationInitializer {public void onStartup(ServletContext servletContext) throws ServletException {// TODO Auto-generated method stubAnnotationConfigWebApplicationContext mvcContext = new AnnotationConfigWebApplicationContext();mvcContext.register(MvcConfig.class); ServletRegistration.Dynamic dispatcher = servletContext.addServlet( "dispatcher", new DispatcherServlet(mvcContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/");}}?MvcConfig.java
package com.acme.web;
import java.lang.reflect.Method;import java.util.List;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;import org.springframework.format.FormatterRegistry;import org.springframework.http.converter.ByteArrayHttpMessageConverter;import org.springframework.http.converter.FormHttpMessageConverter;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.http.converter.StringHttpMessageConverter;import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;import org.springframework.http.converter.xml.SourceHttpMessageConverter;import org.springframework.ui.ExtendedModelMap;import org.springframework.validation.Validator;import org.springframework.web.context.request.NativeWebRequest;import org.springframework.web.method.support.HandlerMethodArgumentResolver;import org.springframework.web.method.support.HandlerMethodReturnValueHandler;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.mvc.annotation.ModelAndViewResolver;import org.springframework.web.servlet.view.InternalResourceViewResolver;import org.springframework.web.servlet.view.JstlView;import com.acme.DBConfig;@Configuration@EnableWebMvc@ComponentScan(basePackages = "com.spring.my")@Import(DBConfig.class)public class MvcConfig extends WebMvcConfigurerAdapter{@Bean public ViewResolver contentNegotiatingViewResolver() { InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); internalResourceViewResolver.setPrefix("/views/"); internalResourceViewResolver.setSuffix(".jsp"); internalResourceViewResolver.setViewClass(JstlView.class); return internalResourceViewResolver; }@Beanpublic ModelAndViewResolver modelAndViewResolver(){return new ModelAndViewResolver() {@Overridepublic ModelAndView resolveModelAndView(Method arg0, Class arg1,Object arg2, ExtendedModelMap arg3, NativeWebRequest arg4) {// TODO Auto-generated method stubreturn UNRESOLVED;}};}@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {// TODO Auto-generated method stubsuper.addArgumentResolvers(argumentResolvers);}@Overridepublic void addFormatters(FormatterRegistry registry) {// TODO Auto-generated method stubsuper.addFormatters(registry);}@Overridepublic void addInterceptors(InterceptorRegistry registry) {// TODO Auto-generated method stubsuper.addInterceptors(registry);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// TODO Auto-generated method stub//registry.addResourceHandler("");super.addResourceHandlers(registry);}@Overridepublic void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {// TODO Auto-generated method stubsuper.addReturnValueHandlers(returnValueHandlers);}@Overridepublic void addViewControllers(ViewControllerRegistry registry) {// TODO Auto-generated method stubsuper.addViewControllers(registry);}@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {// TODO Auto-generated method stub//configurer.enable();super.configureDefaultServletHandling(configurer);}@Overridepublic void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {// TODO Auto-generated method stubsuper.configureHandlerExceptionResolvers(exceptionResolvers);}@SuppressWarnings("rawtypes")@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {// TODO Auto-generated method stubconverters.add(new MappingJacksonHttpMessageConverter());converters.add(new SourceHttpMessageConverter());converters.add(new FormHttpMessageConverter());converters.add(new StringHttpMessageConverter());converters.add(new ByteArrayHttpMessageConverter());super.configureMessageConverters(converters);}@Overridepublic Validator getValidator() {// TODO Auto-generated method stubValidator v= super.getValidator();return v;}}?DBConfig.java
package com.acme;
import javax.sql.DataSource;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.ImportResource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;@Configuration@ImportResource("classpath:/com/acme/properties-config.xml")public class DBConfig {private @Value("${jdbc.driver}")String driver;private @Value("${jdbc.url}")String url;private @Value("${jdbc.username}")String username;private @Value("${jdbc.password}")String password;public @BeanDataSource dataSource() {System.out.println("OK-------------------------");DriverManagerDataSource dataSource=new DriverManagerDataSource(url, username, password);dataSource.setDriverClassName(driver);return dataSource;}public @BeanJdbcTemplate jdbcTemplate(){return new JdbcTemplate(dataSource());}}?5.创建好各个目录(根据配置程序和仅有的一个xml)
6. 编写测试程序,启动项目测试(附件含有)