Запуск веб -проекта в Servlet 3.0 больше не может потребовать файла конфигурации web.xml, поэтому конфигурация в этой статье действительна только в веб -контейнерах, которые поддерживают Сервлет 3.0 и выше.
Используя Spring MVC (4.3.2.reease) + Thymeleaf (3.0.2.release), jdbctemplate, используемый в слое стойкости. PS: рекомендуйте очень полезную структуру для инкапсуляции JDBCTEMPLATE: https://github.com/selfly/dexcoder-assistant. Ниже приведена конкретная конфигурация:
Настройка Spring MVC DispatcherServlet
DispatcherServlet является ядром Spring MVC. Spring обеспечивает класс AbstractannotationConfigDispatcherServletinitializer, который быстро настраивает DispatcherServlet. Конкретный код заключается в следующем:
где onStartUp () - это метод в интерфейсе webApplicationInitializer, и пользователь настраивает другие фильтры и слушателей.
GetRootConfigClasses () Получает класс конфигурации, я понимаю, что эквивалентно контексте, созданному ApplicationContext.xml
getservletConfigClasses () Получает класс конфигурации, который эквивалентен контексте, созданному MVC-servlet.xml
В этой категории не требуется комментариев
package com.liu.bank.config;import org.springframework.web.WebApplicationInitializer;import org.springframework.web.filter.CharacterEncodingFilter;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.FilterRegistration;import javax.servlet.ServletContext;import javax.servlet.ServletException;import java.nio.charset.StandardCharsets;/** * User : liu * Date : 2016-10-7 15:12 */public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer implements WebApplicationInitialize {@Override Protected Class <?> [] GetRootConfigClasses () {return New Class <?> [] {RootConfig.class}; } @Override Protected Class <?> [] GetServletConfigClasses () {return New Class <?> [] {Webconfig.class}; }/*** Настройте путь, чтобы соответствовать DispatcherServlet* @return*/@Override Protected String [] getServletMappings () {return new String [] {"/"}; } / ** * Настроить другие сервлеты и фильтры * * @param ServletContext * @Throws ServletException * / @Override public void OnTartup (ServletContext ServletContext) Throws ServletException {FilterRegistration.Dannamic EncodingFilter = ServletContext.AddFilter ("EncodingFilter", HargeNcodingFILTRITER.CLITRTERSLTER. EncodingFilter.setInitParameter («Кодирование», String.ValueOF (standardCharsets.UTF_8)); EncodingFilter.setInitParameter («ForceEncoding», «True»); EncodingFilter.AddmappingForurlPatterns (null, false, "/*"); }} Configure ApplicationContext.xml, реализованный классом RootConfig
пакет com.liu.bank.config; import com.mchange.v2.c3p0.combopooleddatasource; import org.springframework.context.annotation.*; import org.springframework.core.env.environment; import org.spramework.jdbc.core.jdbctateTate; org.springframework.jdbc.datasource.datasourcetransactionmanager; импорт org.springframework.stereotype.controller; импорт org.springframework.transaction.platformtransactionmanager; импорт org.spramework.ransaction.nanantation.nablescationmanationmanation; javax.sql.datasource; import java.beans.propertyvetoexception;/** * Пользователь: liu * Дата: 2016-10-7 15:36 */@configuration@propertysource ("classpath: config.properties") // import file @enableaspectjuproxy // aecaventies to to to to to to <AOP: AspectJ-autoproxy/> @ounableTransActionManagement в XML // Включение аннотационной транзакции @componentscan (basepackages = {"com.liulu.lit", "com.liulu.bank"}, excludefilters = @componentscan.filter (classe.coller.class) publicers inpureters in poplectreser) publicers inpureterscan.filter. Атрибут, импортируемый выше, будет введен в среду @Resource Private Environment Envel Env; / ** * Настройка базы данных пула соединений C3P0, * @return * @Throws PropertyVetoException */ @bean public DataSource DataSource () Throws PropertyVetoException {ComboPooledDataSource dataSource = new ComboPooledDataSource (); 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.setcheckouttimeout (integer.valueof (env.getProperty ("pool.checkouttimeout"))); dataSource.setAcquiretryTryattempts (2); вернуть DataSource; } / ** * Настройка вещей Manager * @param dataSource * @return * / @bean public platformtransactionManager TransactionManager (DataSource DataSource) {return New DataSourCetransActionManager (dataSource); } @Bean public jdbctemplate jdbctemplate (dataSource dataSource) {return new jdbctemplate (dataSource); }}Файл config.properties находится в каталоге ресурсов
#Database Configuration DB.URL = JDBC: MYSQL: //192.168.182.135: 3306/bankdb.driver = com.mysql.jdbc.driverdb.user = rootdb.password = 123456#Пул. Подключения, зарезервированные в бассейне Pool Bool.maxpoolsize = 30#Получить Тайм -аут подключения.
Configure Servlet.xml, реализованный классом WebConfig
Конфигурация шаблона тимелиста также ниже
пакет com.liu.bank.config; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.componentscan; import org.springframework.context.annotation.configuration; импорт org.spramework.stepoly.controller; org.springframework.web.servlet.viewresolver; import org.springframework.web.servlet.config.annotation.defauldervlethandlerconfigurer; import org.springframework.web.servlet.config.annation.ennablewebmvc; import org.springframework.web.servlet.config.annotation.webmvcconfigurerAdapter; import org.thymeleaf.templateengine; импорт org.thymeleaf.spring4 org.thymeleaf.spring4.view.thymeleafviewresolver; import org.thymeleaf.templatemode.templatemode; импорт java.nio.charset.standardcharsets;/** * Пользователь: liu * Дата: 2016-10-7 15:16 */@inablew <mvc: annotation-raven /> @componentscan (basepackages = {"com.liulu.bank.controller", "com.liulu.lit"}, includefilters = @componentscan.filter (classaller.class), usedefefilters = false) webconfig extends extends extends extends* false). Статические ресурсы, обработанные веб-контейнером, который эквивалентен <MVC: Default-Servlet-Handler/> в XML */ @Override public void configuredEfauldervLethandling (defauldershandlerconfigurer configure) {configururer.enable (); } / *** Следующие три боба настроены на шаблон Thymeleaf* @return* / @bean public springresourcetempleresolver templateresolver () {springresourcetempleresolver templateresolver = new Springresourcetemplateresolver (); templateresolver.setprefix ("/web-inf/templates/"); Templateresolver.setsuffix (". Html"); templateresolver.settemplatemode (templatemode.html); templateresolver.setcharacterencoding (string.valueof (standardcharsets.utf_8)); вернуть Templateresolver; } @Bean Public TemplateEngine TemplateEngine (Springresourcetempleresolver Templateresolver) {SpringtemplateEngine TemplateEngine = new SpringtemplateEngine (); TemplateEngine.SetTemplateresolver (Templateresolver); возвратный шаблон; } @Bean Public ViewResolver ViewResolver (TemplateEngine TemplateEngine) {ThymeleafViewResolver ViewResolver = new ThymeleafViewResolver (); ViewResolver.setTemplateEngine (TemplateEngine); viewResolver.setcharacterencoding (string.valueof (standardcharsets.utf_8)); return viewResolver; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.