Iniciar un proyecto web en Servlet 3.0 ya no puede requerir un archivo de configuración web.xml, por lo que la configuración en este artículo solo es válida en contenedores web que admiten Servlet 3.0 y arriba
Usando MVC Spring (4.3.2.release) + Thymeleaf (3.0.2.release), la plantilla JDBCTCTE utilizada en la capa de persistencia. PD: Recomiende un marco muy útil para la encapsulación JDBCTemplate: https://github.com/selfly/dexcoder-assistant. La siguiente es la configuración específica:
Configurar Spring MVC Dispatcherservlet
DispatcherServlet es el núcleo de Spring MVC. Spring proporciona una clase AbstractannotationConfigDisPatcherservletInitializer que configura rápidamente el desplazamiento del servidor. El código específico es el siguiente:
Donde OnStartUp () es un método en la interfaz WebApplicationInitializer, y el usuario configura otros filtros y oyentes.
getRootConfigClasses () obtiene la clase de configuración, lo que entiendo es equivalente al contexto creado por ApplicationContext.xml
getServletConfigClasses () obtiene la clase de configuración, que es equivalente al contexto creado por MVC-Servlet.xml
No se requieren comentarios en esta categoría
paquete com.liu.bank.config; import org.springframework.web.webapplicationInitializer; import org.springframework.web.filter.characteriCodingFilter; import Org.springframework.web.servlet.support.AbStractannotationConfigAcherservletiniTiTiTiniTiCiniator; javax.servlet.filterRegistration; import javax.servlet.servletContext; import javax.servlet.servletException; import java.nio.charset.standardcharsets;/** * Usuario: Liu * Fecha: 2016-10-7 15:12 */Class pública WebAppinitializator ANCENDACIÓN ANTENDS ANTRESSES EXPRENCIDOS EXPRENCIDOS WebApplicationInitializer {@Override Clase protegida <?> [] GetRootConfigClasses () {return new class <?> [] {Rootconfig.class}; } @Override Clase protegida <?> [] GetServletConfigClasses () {return new class <?> [] {Webconfig.class}; }/*** Configure la ruta para que coincida con el desplazamiento* @return*/@Override String protegido [] getServletMappings () {return new String [] {"/"}; } / ** * Configurar otros servlets y filtros * * @param servletContext * @throws servletException * / @Override public void onStartUp (servletContext ServletContext) lanza ServletException {filtreRegistration.dynamic EndingFilter = servletContext.addfilter ("encodingfilter", caracteres caracterescodingfilterfilter) EncodingFilter.SetInitParameter ("Coding", String.ValueOf (StandardCharSets.utf_8)); codingfilter.SetInitParameter ("ForceEncoding", "True"); codingfilter.addmappingforUrlPatterns (nulo, falso, "/*"); }} Configurar ApplicationContext.xml, implementado por RootConfig Class
paquete com.liu.bank.config; import com.mchange.v2.c3p0.comBopooledDataSource; import org.springframework.context.annotation.*; import og.springframework.core.env.envirment; import org.springframework.jdbc.core.jdbctemplate; org.springframework.jdbc.datasource.datasourcetransactionManager; import org.springframework.stereotype.controller; import org.springframework.transaction.platformtransactionManager; import.springframework.transaction.annotation.enableSactionsMange; import jaavax.RespringFrameWork javax.sql.dataSource; import java.beans.propertyvetoException;/** * Usuario: Liu * Fecha: 2016-10-7 15:36 */@Configuration@PropertySource ("Classpath: Configur.Properties") // Importar propiedad de propiedad @enableSpectJAutoProxy // equivalente a <aop: spectJ-AUTOPROXY/> @enableTransactionManagement en xml // habilitar la transacción de anotación @ComponentsCan (basepackages = {"com.liulu.lit", "com.liulu.bank"}, ExcudeFilters = @componentsCan.filter (classes = controlador.class))) El archivo de atributos importado anteriormente se inyectará en el entorno @Resource Private Environ ENV; / ** * Configurar la conexión de conexión de base de datos C3P0, * @return * @throws PropertyVetoException */ @Bean public dataSource DataSource () lanza PropertyVetOException {CombopooledDataSource DataSource = new ComboPooledDataSource (); dataSource.setJdbCurl (env.getProperty ("db.url")); dataSource.setDrivClass (env.getProperty ("db.driver")); dataSource.setUser (env.getProperty ("db.user")); dataSource.setPassword (env.getProperty ("db.password")); dataSource.SetMinPoolSize (Integer.ValueOf (env.getProperty ("Pool.MinPoolSize"))); dataSource.setMaxPoolSize (Integer.ValueOf (env.getProperty ("Pool.MaxPoolSize"))); dataSource.setAutOcommitOnclose (falso); dataSource.setcheckoutTimeout (Integer.ValueOf (env.getProperty ("Pool.CheckoutTimeOut"))); dataSource.setAcquireretryAttempts (2); devolver datos de datos; } / ** * Configure las cosas Administrador * @param DataSource * @return * / @Bean PublicTransactionManager TransActionManager (DataSource DataSource) {return New DataSourCetransactionManager (DataSource); } @Bean public JDBCTEMPLATE JDBCTEMPLATE (DataSource DataSource) {return new jdbctemplate (dataSource); }}El archivo config.properties está en el directorio de recursos
#Database Configuration db.url = jdbc: mysql: //192.168.182.135: 3306/bankdb.driver = com.mysql.jdbc.driverdb.user = rootdb.password = 123456#Configuración de la configuración del grupo de conexiones de la base#Número de mínimo de las conexiones reservadas en el grupo de conexión en el grupo de conexión. Conexiones reservadas en conexión Pool Pool Pool.MaxpoolSize = 30#Obtener tiempo de espera de conexión.
Configurar servlet.xml, implementado por WebConfig Class
La configuración de la plantilla de Tymeleaf también está a continuación
paquete com.liu.bank.config; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.componentscan; import org.springframework.context.annotation.configuration; import org.springframework.stereotype.controllcontrol 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.webmvcconfigurerAdapter; import og.thymeleaf.templateEngine; importar org.thymeleaf.spring4.springtemplateengine; import.thymeleaf.spring4.templatescholver.springRingRingReurCetCetCetCetCetCetCetEmver; org.thymeleaf.spring4.view.thymeleaKViewResolver; import org.thymeleaf.templatemode.templatemode; import java.nio.charset.standardcharsets;/** * Usuario: Liu * fecha: 2016-10-7 15:16 */@Configuración@EnablewebMVMVC // Enable SpringmvC, que es equivalente, ¿cuál es el equivalente? <mvc: annotation-riven /> @componentscan (basepackages = {"com.liulu.bank.controller", "com.liulu.lit"}, includefilters = @componentscan.filter (classes = controler.classs), usadofaultFilters = falso) public class WebConfig Extends Vensas de Webmvcconfigureraderfigureradremureradrinfigurer { /** ** **. Recursos estáticos manejados por el contenedor web, que es equivalente a <mvc: default-servlet-handler/> en xml */ @Override public void ConfiguradofaultServlethandling (defaultServlethandlerConfigurer Configurar) {configurador.enable (); } / *** Los siguientes tres frijoles están configurados Tymeleaf Template* @return* / @Bean public SpreourCetEmplateresolver Templateresolver () {SpringResourCetEmplateresolver Templateresolver = new SpreourCetEmplateresolver (); TEMPLATERESOLVER.SETPREFIX ("/Web-Inf/Templates/"); TEMPLATERESOLVER.SETSUFFIX (". html"); TEMPLATERESOLVER.SETTMATEMODE (TEMPLATEMODE.HTML); TEMPLATERESOLVER.SECHARACTERECODING (String.ValueOf (StandardCharSets.utf_8)); retorno Templateresolver; } @Bean Public TemplateEngine TemplateEngine (SpringResourCetEmplateresolver Templateresolver) {SpringTemplateEngine TemplateEngine = new SpringTemplateEngine (); TemplateEngine.settemplateresolver (Templateresolver); TEMPLATEEnEngine de retorno; } @Bean public ViewResolver ViewResolver (TemplateEngine TemplateEngine) {thyMelEAdViewResolver ViewResolver = new THyMeleaDViewResolver (); ViewResolver.SettemplateEngine (TemplateEnnemene); ViewResolver.SetcharacterEncoding (String.ValueOf (StandardCharSets.utf_8)); return ViewResolver; }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.