Le démarrage d'un projet Web dans Servlet 3.0 ne peut plus nécessiter un fichier de configuration web.xml, de sorte que la configuration de cet article n'est valable que dans des conteneurs Web qui prennent en charge le servlet 3.0 et supérieur
L'utilisation de Spring MVC (4.3.2.release) + thymeleaf (3.0.2.release), le JDBCTemplate utilisé dans la couche de persistance. PS: Recommander un framework très utile pour JDBCTemplate Encapsulation: https://github.com/selfly/dexcoder-assistant. Ce qui suit est la configuration spécifique:
Configurer Spring MVC Dispatcherservlet
DispatcherServlet est au cœur de Spring MVC. Spring fournit une classe AbstractannotationConfigDispatcherserServitializer qui configure rapidement Dispatcherservlet. Le code spécifique est le suivant:
où onStartup () est une méthode dans l'interface WebApplicationInitializer, et l'utilisateur configure d'autres filtres et écouteurs.
getrootConfigClasses () obtient la classe de configuration, ce que je comprends équivaut au contexte créé par applicationContext.xml
getServletConfigClasses () obtient la classe de configuration, ce qui équivaut au contexte créé par mvc-servlet.xml
Aucun commentaire n'est requis dans cette catégorie
Package com.liu.bank.config; import org.springframework.web.webapplicationInitializer; import org.springframework.web.filter.characterencodingfilter; import org.springframework.web.servitiniler; javax.servlet.filterRegistration; Importer javax.servlet.servletContext; import javax.servlet.servletException; import java.nio.charset.standardcharsets; / ** * utilisateur: liu * date: 2016-10-7 15:12 * / classe publique webappinitialiserine WebApplicationInitializer {@Override Protected class <?> [] GetrootconfigClasses () {return new class <?> [] {RootConfig.class}; } @Override Protected class <?> [] GetServletConfigClasses () {return new class <?> [] {WebConfig.class}; } / ** * Configurez le chemin d'accès pour correspondre à Dispatcherservlet * @return * / @Override Protected String [] getServletMappings () {return new String [] {"/"}; } / ** * Configurer d'autres servlets et filtres * * @param servletContext * @throws servletException * / @Override public void onStartup (servletContext ServletContext) lève ServletException {filterRegister.dynamic EncodingFilter = ServletContext.class); EncodingFilter.SetInitParameter ("Encoding", String.ValueOf (StandardCharsets.Utf_8)); EncodingFilter.setInitParameter ("Forceencoding", "True"); EncodingFilter.addmappingForurlPatterns (null, false, "/ *"); }} Configurer ApplicationContext.xml, implémenté par la classe RootConfig
package com.liu.bank.config; importer com.mchange.v2.c3p0.combopooleddatasource; import org.springframework.context.annotation. *; import org.springframework.core.env.environment; import org.springframework.jdbc.core.jdbctemplate; org.springframework.jdbc.datasource.datasourcetransactionManager; import org.springframework.sterreotype.Controller; import org.springframework.transaction.annotation.enabransransactionmangation; javax.annotation.resource; import javax.sql.datasource; importer java.beans.propertyvetoexception; / ** * utilisateur: liu * date: 2016-10-7 15:36 * / @ configuration @ propertsource ("classpath: config.properties") // importer la propriété @enableSpectJAutJAtoproxy // EQUIVIALENT TO IMPORT PROPERS <aop: Aspectrj-Autoproxy /> @ INABLETRANSACTIONMANDEMENT EN XML // Activer la transaction d'annotation @ComponentsCan (basepackages = {"com.liulu.lit", "com.liulu.bank"}, exclusionfilters = @ componentscan {the properties in Controller.class))) Le fichier d'attribut importé ci-dessus sera injecté dans l'environnement @Resource Private Environment Env; / ** * Configurer le pool de connexions de base de données C3P0, * @return * @throws PropertyVetoException * / @Bean public DataSource DataSource () lève PropertyVetoException {combopooledDataSource dataSource = new lobopooledDataSource (); dataSource.setjdbcurl (Env.getProperty ("db.url")); DataSource.setDriverClass (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 (false); DataSource.SetheCKoutTimeout (Integer.ValueOf (Env.GetProperty ("Pool.CheckoutTimeout"))); DataSource.SetACQuireRetryATTempts (2); return dataSource; } / ** * Configurer le gestionnaire de choses * @param dataSource * @return * / @bean public plateformeTransactionManager TransactionManager (DataSource DataSource) {return new DataSourceTransActionManager (DataSource); } @Bean public JDBCTemplate JDBCTemplate (DataSource DataSource) {return new JDBCTemplate (dataSource); }}Le fichier config.properties est dans le répertoire des ressources
#Database Configuration db.url = jdbc: mysql: //192.168.182.135: 3306 / bankdb.driver = com.mysql.jdbc.driverdb.user = rootdb.password = 123456 # Configuration du pool de connexion de la base de référence. des connexions réservées dans le pool de pool de connexions Pool Pool.MaxPoolSize = 30 # Obtenir le temps d'attente de connexion.CheckoutTimeout = 1000
Configurer servlet.xml, implémenté par la classe WebConfig
La configuration du modèle de thymeleaf est également ci-dessous
package 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.controller; import; org.springframework.web.servlet.viewResolver; import org.springframework.web.servlet.config.annotation.defaultServlethandlerConfigurer; import org.springframework.web.servlet.config.annotation.enablewebmvc; importation; org.springframework.web.servlet.config.annotation.webmvcconfigurerAdapter; import org.thymeleaf.templateengine; import org.thymeleaf.spring4 org.thymeleaf.spring4.View.ThyMeleaViewResolver; import org.thymeleaf.templatemode.templatemode; importer java.nio.charset.standardcharsets; / ** * utilisateur: liu * Date: 2016-10-7 15:16 * / @ configuration @ enable <MVC: Annotation-Driven /> @ ComponentsCan (basepackages = {"com.liulu.bank.controller", "com.liulu.lit"}, inclusefilters = @ componentscan Les ressources statiques gérées par le conteneur Web, qui équivaut à <MVC: default-servlet-handler /> dans XML * / @Override public void configuredEfaultServertHandling (defaultServLethandlerConfigurer configure) {configurer.enable (); } / ** * Les trois haricots suivants sont configurés le modèle de thymeleaf * @return * / @Bean public SpringResourceTemplateresolver Templateresolver () {SpringResourceTetemplateresolver Templatesolver = new SpringResourceTeteResolver (); templateresolver.setPrefix ("/ web-inf / templates /"); Templatesolver.SetSuffix (". Html"); Templateresolver.SetTemplateMode (templatemode.html); Templatesolver.SetcharAtterencoding (String.ValueOf (StandardCharsets.Utf_8)); Retour Templatesolver; } @Bean Public TemplateEngine TemplateEngine (SpringResourceTEmplateresolver Templateresolver) {SpringTemplateEngine TemplateEngine = new SpringTemplateEngine (); TemplateEngine.SetTemplateresolver (Templatesolver); RETOUR MODEALEGINE; } @Bean Public ViewResolver ViewResolver (templateEngine templateEngine) {thymeafViewResolver ViewResolver = new thymeafViewResolver (); ViewResolver.SetTemplateEngine (templateEngine); ViewResolver.SetcharAtterencoding (String.ValueOf (StandardCharsets.Utf_8)); return ViewResolver; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.