В процессе передачи проекта SpringMVC в Springboot были сделаны следующие вещи в основном
В дополнение к представлению того, что и как это сделать, в этой статье будет много ненужной чепухи. Для некоторых дискуссий по принципу вы также должны знать причину.
Конфигурация профиля
В традиционных весенних проектах метод конфигурации нескольких профилей состоит в том, чтобы записать несколько профилей в файл pom.xml, а затем предварительно загружать выбранную среду профиля, выполняя файл Maven до начала проекта. После загрузки, при выполнении проекта, он решит, какой файл .properties для загрузки в глобальную переменную на основе загруженной среды.
И управление несколькими профилями в Springboot очень просто.
Вы можете выбрать профиль при запуске пакета JAR с помощью командной строки
java -jar example.jar -spring.profiles.active = test
Или настроить его в глобальном приложении конфигурации.properties
Добавить spring.profiles.active = тест в Application.properties
Оба вышеуказанных метода могут запустить профиль «тест», первый имеет более высокий приоритет в исполнении, чем в последнем.
(Кстати, в Springboot эти два метода по существу используют метод «внешняя конфигурация» для редактирования и замены среды)
Кроме того, каждая независимые профили настроены в формате «Приложение-xxx.properties» для каждой другой среды, например:
Когда нам нужно проверить, загружается ли профиль нормально, мы можем написать его в соответствующем файле .properties
Server.port = 9080
Вы можете увидеть, был ли этот порт запускается в Startup.
Здесь вы можете упомянуть порядок, в котором Springboot загружает файлы конфигурации
Глобальные переменные считываются из файла свойств
В предыдущем разделе мы написали конфигурацию свойств для различных сред. Здесь мы напишем, если эти свойства записаны в глобальные переменные, что удобно для прямых вызовов в других местах позже.
/*** Глобальная переменная*/public Class Global {public Static String examplePath; @Value ("$ {example_path}") public void setExamplepath (string example) {global.examplepath = examplePath; }} Таким образом, мы поместим файл .properties в
example_path = http: // localhost: 9090
Это свойство читается в глобальной переменной.
Источник данных и конфигурация Mybatis
В традиционном весеннем проекте используйте Mybatis для подключения к базе данных
Все это настроено в файле конфигурации XML, который довольно громоздкий. В Springboot постарайтесь избежать такой конфигурации XML.
Mybatis теперь оказал поддержку Springboot. Нам нужно только добавить зависимость Mybatis-Spring-Boot-Starter, и она сделает для нас следующее:
Итак, в конфигурации Mybatis Springboot нам нужно сделать следующее:
Заполните информацию о базе данных в Application- {профиль} .properties, например:
spring.datasource.url = jdbc: oracle: thin:@// localhost: 1234/examplespring.datasource.username = rootspring.datasource.password = 123456spring.datas ource.driver-class-name = oracle.jdbc.driver.oracledriverspring.datasource.maxactive = 10spring.datasource.maxidle = 5spring.datasource.maxwait = -1
Таким образом, мы регистрируем бобы данных в контексте весны.
Создайте файл mybatisconfig и замените XML на Java:
/*** Создано Wutaoyu 2017/12/7. */@Configuration@enableTransActionManagement@mapperscan ("com.example.db.dao") открытый класс mybatisconfig {@autowired private dataSource; @Bean (name = "sqlSessionFactory") public sqlSessionFactory sqlSessionFactoryBean () {sqlSessionFactoryBean sqlSession = new sqlSessionFactoryBean (); sqlSession.setDatasource (DataSource); try {// добавить xml Directory resourcepatternresolver Resolver = new PathmatchingResourcepatternResolver (); sqlSession.setMapperlocations (resolver.getResources ("classpath: mapping/*. xml")); return sqlsession.getObject (); } catch (Exception e) {e.printstackTrace (); бросить новое runtimeexception (e); }} @Bean public sqlSessionTemplate sqlSessionTemplate (sqlSessionFactory sqlSessionFactory) {return new sqlSessionTemplate (sqlSessionFactory); } @Bean public platformtransactionManager AnnotationDriventRansactionManager () {return New DataSourcETransActionManager (dataSource); } @Bean (name = "exampesequence") public oraclesequencemaxvalueincrementer exampesequencebean () {oraclesequencemaxvalueincrementer exampesequence = new oraclesequencemaxvalueincrementer (); exampeSequence.setIncrementerName ("example_seq"); exampeSequence.setDataSource (DataSource); вернуть примерное предложение; }} @Mapperscan - это сканировать Mapper ниже этого пакета.
Кроме того, местоположение Mapper.xml здесь - создать папку сопоставления в папке ресурса и разместить ее ниже.
Функция здесь похожа на XML. Он должен описать традиционный метод экспрессии XML в.
Поскольку в примере используется база данных Oracle, последняя экспертизация является примером, чтобы проиллюстрировать, как добавить последовательность.
Аннотация интерфейсов для всех карточек @mapper
Например:
@Mapperpublic interface usermapper {...} Конфигурация файла журнала
Регистрация поддерживает внешнюю конфигурацию в форме свойств, но для относительно подробных конфигураций все еще необходимо использовать конфигурацию XML.
Для того, чтобы файл XML прочитал некоторые пути из файла .properties, статические конфигурации, которые могут потребовать частых изменений, необходимо настройка его в restrack-spring.xml
<Property resource = "Application.properties" /> <name = "log.root.level" value = "$ {log.root.level}" /> <name = "log.path" value = "$ {log.path}" /> <name = "log.modulename" value = "$ {log.module}" /> Таким образом, вы можете поместить файл Application.properties в
log.path =/home/logs/examplelog.root.level = infolog.module = пример
Прочитайте его в resgrack-spring.xml, а затем позвоните.
Конфигурация WebConfig
Основная функция WebConfig-заменить web.xml и Spring-Mvc.xml для некоторой базовой конфигурации.
1. О Web.xml
Традиционные весенние проекты настраивают файл web.xml. Функция этого файла: когда мы помещаем военный пакет в контейнер приложения (например, Tomcat), контейнер будет загружать фильтр (фильтр), сервлет, страница ошибки, служба приветствия, слушатель (слушатель), контекст-парам (параметры контекста), ресурс-REF (конфигурация ресурса) и другие конфигурации в соответствии с Web.xml.
Слушатель, включающий контекст -загрузчик, загружается здесь для автоматической сборки информации о конфигурации приложения Context при запуске контейнера.
<Learser> <lloader-class> org.springframework.web.context.contextloaderListener </sluster-class> </sluster>
Этот приложение Context является ядром Spring IOC (унаследованного от Beanfactory), и в настоящее время все синглтонские бобы будут созданы.
Кроме того, здесь также загружается очень важный диспетчер в Springmvc, и определяется, какой XML -файл для настройки диспетчериста.
<servlet> <servlet-name> springmvc </servlet-name> <vervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name> contextconfiglocation </param-ame> <param-value> classpath: spring-mvc.xml </param-value> </init-par> </init-par> </init-par> </param-valam> </param-value> init-par <Load-on-startup> 1 </load-on-startup> <!-<async-поддержка> true </async-поддерживаемое>-> </servlet>
2. О Spring-Mvc.xml
Spring-Mvc.xml-это файл конфигурации SpringMVC. Здесь мы можем настроить бобы, которые необходимо настраивать, такие как ViewResolver, MultipResolver, HTTP -конвертер сообщений, пользовательский перехватчик и т. Д.
Все вышеперечисленное не имеет ничего общего с Springboot, в основном, чтобы узнать причину и почему. Если вам не интересно, вы можете игнорировать это.
Давайте поговорим о конфигурации Springboot. Springboot имеет высказывание, что «соглашение лучше, чем конфигурация», что означает попытку использовать согласованный метод, а не специально целенаправленную конфигурацию (конфигурация, когда требуется специальная конфигурация).
После введения «вне коробки» зависимости от Spring-Boot-Starter-Web, Spring-Boot-Starter-Web содержит аувтоконфигура Spring-Boot-Boot.
При этой зависимости вы можете использовать аннотацию @enableautocongiguration. Эта аннотация предполагает необходимую вам конфигурацию пружины на основе введенных зависимостей и поможет вам настроить ее. Поскольку была введена Spring-Boot-Starter-Web, эта аннотация настроит конфигурацию, связанную с Интернетом.
Кроме того, аннотация @enableautocongiguration была включена в аннотацию @springbootapplication. Так что просто аннотируйте @SpringBootApplication в классе стартапа примеров, и вы можете автоматически настроить Интернет для его настройки.
Конечно, у нас могут быть некоторые специальные конфигурации, и в настоящее время мы можем создать веб -конфиг для настройки
/*** Создано Wutaoyu 2017/12/8. */ @ConfigurationPublic Class WebConfig Extends webmvcconfigurerAdapter {@Override public void configureRemessageConverters (список <httpmessageConverter <? >> конвертеры) {конвертер.add (marshallinghtpmessageConverter ()); } public marshallinghttpmessageconverter marshallinghttpmessageconverter () {marshallinghttpmessageconverter marshallinghttpmessageconverter = new MarshallinghttpmessageConverter (); Список <MediaType> mediaTypes = new ArrayList <wiestype> (); mediaTypes.add (mediaType.text_xml); mediaTypes.add (mediaType.application_xml); Xstreammarshaller xstreammarshaller = new xstreammarshaller (); marshallinghttpmessageconverter.setsupportedmediatypes (MediaTypes); marshallinghttpmessageconverter.setmarshaller (xstreammarshaller); marshallinghttpmessageconverter.setunmarshaller (xstreammarshaller); вернуть MarshallinghttpmessageConverter; } // Загрузка файла конфигурации @bean (name = {"multiprtesolver"}) public multiprtesolver multipartresolver () {commonsmultipartresolver commonsmultipartresolver = new commonsmultipartresolver (); CommonsmultiparTresolver.setDefaultEncoding ("UTF-8"); CommonsmultiparTresolver.setMaxUploadSize (10485760000L); Commonsmultipartresolver.setMaxInMemorySize (40960); Return Commonsmultipartresolver; } // Обработка исключений @bean public exceptionHandler exceptionResolver () {exceptionHandler exceptionHandler = new ExceptionHandler (); вернуть ExceptionHandler; } // receptor @Override public void AddInterceptors (реестр ReceptorTorgistry) {Registry.Adinterceptor (new Loginterceptor ()). AddPathPatterns ("/**"); Super.addinterceptors (реестр); }}Я сделал несколько вещей в этом примере файла:
Удалить лишние инъекции бобов
Это отвлечение, но это также одна из проблем, с которыми я действительно столкнулся.
Когда я на самом деле запустил проект Springboot, я обнаружил некоторые проблемы, которые не сообщали об ошибках в традиционных весенних проектах, которые являются ненужными инъекциями бобов.
В традиционных весенних проектах нет ошибок, но в проектах Springboot сообщается. Я предполагаю, что это связано с тем, что когда метод класса, введенный в бобы, дается относительно простым способом, он будет повторяться с помощью некоторых бобов, автоматически настроенных самим Springboot, и будет сообщена ошибка.
Итак, удалите несколько бобов, которые не нужно вводить.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.