Давайте кратко поговорим о проекте Maven Building SSM (использование базы данных Oracle немного более хлопотно, чем MySQL, так что давайте поговорим об этом здесь)
При создании веб -проектов Maven две папки: Main/Java и Main/Test часто отсутствуют.
Решение:
①: Щелкните правой кнопкой мыши проект и выберите свойства, затем нажмите «Путь сборки Java», «Библиотеки», «Редактировать системную библиотеку JRE» и выберите JRE Workspace по умолчанию. (Это рекомендуется)
②: Создайте каталог вручную. Вид Switch использует представление Navigator и напрямую создает каталог Java в SRC/Main Directory.
Структура каталогов проектов:
Важные файлы конфигурации:
Файл конфигурации модели объекта: pom.xml
Файл конфигурации пружины: ApplicationContext.xml
Файл конфигурации Spring MVC: Springmvc.xml
Файл конфигурации базы данных: jdbc.properties
Файл конфигурации журнала: log4j.properties
Файл конфигурации mybatis: mybatis-config.xml
Файл конфигурации сетевой программы: web.xml
Сначала настроить pom.xml
Pom.xml в основном описывает координаты, зависимости и автоматически проекта и автоматически вводит пакеты JAR.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <dolidyversion> 4.0.0 </modelversion> <groupid> com.krry </GroupId> <ratfactid> maven_ssm </artifactid> <serse> 0.0.1-snapshot </ressure> <mame> maven_s> maven_s> maven_s> maven_s> maven_s> maven_s> maven_s> maven_s> <URL> http://maven.apache.org </url> <dependencies> <!-Представьте Junit-> <depachy> <groupid> junit </groupid> <artifactid> junit </artifactid> <serview> 4.11 </version> <cerpope> test </scope> </зависимость> <!-ВВЕДЕНИЕ СЛУЧА <groupId> javax.servlet </GroupId> <ArtifactId> Servlet-API </artifactId> <serse> 3.0-alpha-1 </version> <crappe> предоставлен </scope> </redice> <!-Введение пакета JSTL-> <Depective> <groupId> </GroupId> <ArtifactIid> artifact> <Scope> предоставлен </scope> </dependency> <!-Внедрение зависимости компиляции JSP-> <Dependency> <groupId> javax.servlet.jsp </GroupId> <strifactId> jsp-api </artifactid> <serse> 2,2 </версия> <cracpope> scope> </scope> </зависимость> <!-Введение в зависимости> в зависимости> </ressporment ressporment ressption>-введение>-введена в зависимости> </зависимость> <! <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--spring springmvc mybatis --> <!-- spring and springmvc related construction jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <serse> 4.2.1.Release </version> </dependency> <Dependency> <groupId> org.springframework </GroupId> <strifactid> Spring-jdbc </artifactid> <sersion> 4.2.1.Release </version> </dependency> <!-springmvc-creted-> <dery> </group org.spring framefring> <! <StrifactId> Spring-webmvc </artifactid> <sersive> 4.2.1.release </version> </dependency> <!-Springmvc требует пакета преобразования JSON Jackson-> <Depective> <groupId> com.fasterxml.jackson.core </Ground> <ratifactid> jackson-core </artifactid> <serse> 2..5.4.5. <groupId> com.fasterxml.jackson.core </GroupId> <artifactid> jackson-annotations </artifactid> <sersive> 2.5.4 </version> </depervice> <dehydency> <groupid> com.fasterxml.jackson.core </artifactid> jackson-databind </artifactid> <serse >.5.5.4.15. <!--JSR303 background verification hibernate validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.1.Final</version> </dependency> <!--upload file-related jar packages--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactid> commons-lang3 </artifactid> <sersion> 3.3.2 </version> </dependency> <!-Codec, связанный с алгоритмами шифрования-> <Dependency> <groupId> commons-codec </GroupId> </artifactid> commons-codec </artifactid> <serse> 1.9 </версия> <//зависимость> <! -> <!-Драйвер базы данных Oracle-> <Dependency> <groupId> com.oracle </GroupId> <ArtifactId> ojDBC6 </artifactid> <serse> 12.1.0.2.0 </version> </depertive> <!-MySQL Database Database Driver> не используется, приведенный выше драйвер Oracle)-> <! <artifactId>mysql-connector-java</artifactId> <version>5.0.8</version> <scope>runtime</scope> </dependency> --> <!-- proxool connection pool--> <dependency> <groupId>com.cloudhopper.proxool</groupId> <artifactId>proxool</artifactId> <version>0.9.1</version> </dependency> <depervice> <groupid> com.cloudhopper.proxool </GroupId> <artifactid> proxool-cglib </artifactid> <sersive> 0.9.1 </version> </depervice> <!-Введение пакета JAR, необходимое для MyBatis-> <DeyBatis> <groupId> org.mybatis </GroupID> <ArtifActId> myBatis> <groupid> org.mybatis </GroupId> <Artifatis> <DeyBatis> <groupid> org.mybatis </artifactid> <groupid> org.mybatis </artifactid> <serse> 3.3.1 </version> </resegency> <Dependency> <groupId> org.mybatis </GroupId> <artifactid> mybatis-spring </artifactid> <sersive> 1.2.4 </version> </depertive> <!-Пакет JAR, необходимый для управления панированием здесь не используется-> <DEVELICE> <GROUPID> COM.Github.pageh <ArtifactId> pageHelper </artifactid> <sersive> 4.2.1 </version> </dependency> </dependencies> <buld> <blicins> <blicin> <artifactid> maven-compiler-plugin </artifactid> <figinturation> <source> 1.7 </source> <compiter> 1.7 </target> <figure> <blicin> <source> 1.7 </source> <target> 1.7 </target> </configuret> <blicin> <blicin> </source> <compler> 1.7 </target> </configuret> <blicin> <source> 1.7 <ArtifactId> mavenwar-plugin </artifactid> <sersion> 2.4 </version> <figureturation> <sersion> 3.0 </version> </configuration> </placin> </placins> <finalName> maven_ssm </finalName> </build> </project>
Вот вопрос о проекте Maven с использованием pom.xml для импорта пакета драйверов Oracle:
Из -за вопросов разрешения Oracle Maven не предоставляет водителя Oracle JDBC. Чтобы применить водитель Oracle JDBC в проектах Maven, он должен быть добавлен вручную в местный репозиторий.
Если база данных Oracle уже установлена на компьютере, в пути установки есть драйвер базы данных, и он может использоваться напрямую. D: /Oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
Вы также можете загрузить драйвер базы данных Oracle непосредственно с официального веб -сайта Oracle и использовать операторы SQL, чтобы запросить версию драйвера базы данных: выберите * из экземпляра V $
Затем подтвердите скачать версию: http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html
Откройте интерфейс командной строки Windows, введите каталог пакета драйверов OJDBC6, а затем запустите:
Установка MVN: install -file -dgroupid = com.oracle -dartifactid = ojdbc6 -dversion = 12.1.0.2.0 -dpackaging = jar -dfile = ojdbc6.jar
Если «успех построения» будет успешно отображен, ваш местный репозиторий Maven будет автоматически импортирован.
Затем вы можете добавить зависимость от проекта Maven, и каждая координата соответствует элементам вышеуказанной команды следующим образом:
<depervice> <groupid> com.oracle </groupid> <artifactid> ojdbc6 </artifactid> <sersive> 12.1.0.2.0 </version> </deperency>
Файл конфигурации пружины: ApplicationContext.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: aop = "http://www.springframework.org/schema/aop" xmlns: context = "http://www.springframework.org/schema/tx" xmlns: util = "http://www.springframe.orshema. xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-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/Util http://www.springframework.org/schema/Util/spring-ut.0.xsdrame сканирование-> <Контекст: компонент-сканирование base-package = "com.krry"> < /context: component-scan> <!-Импорт внешний ресурс-> <!-<Контекст: Property Placeholder location = "classpath: jdbc.properties" />-> <bean p: location = "classpath: jdbc.properties" /> it " /ut speectforties = ut-manize? Pool-> <Bean id = "dataSource"> <!-имя драйвера, mysql-> <name = "driver" value = "$ {db.driver}"> </property> <!-proxool Строка подключения URL этого необходимо определить имя пользователя и пароль-> <свойство = "DriverUrl" value = "$ {db.url}"> </rux> </rux> </rux> </! нельзя оставить в стороне)-> <name = "user" value = "$ {db.username}"> </property> <!-Пароль (Proxool не используется, но не может быть оставлена в стороне)-> <name = "password" value = "$ {db.password}"> </property> <!-интервал времени для прокляции для автоматического переколочка каждого подключения (Millisecond). Когда разведка сделана, немедленно перерабатывайте ее. Уничтожение тайм-аута теперь установлено на 4 секунды)-> <name = name = "housekeplingsleeptime" value = "3000"> </property> <!-автоматически проверяют, сломано ли соединение-> <name = "testbefore" value = "true"> </property> <!-Если будет найдено подключение к базе данных, то хранитель дома будет проверен с помощью этого утверждения. Это утверждение лучше всего выполнять очень быстро. Если это не определено, процесс тестирования будет игнорироваться-> <name = "housekeepingtestsql" value = "select Count (1) из Dual"> </property> <!-Если Housekeeper обнаруживает, что время активности потока больше, чем это значение. Это убьет нить. Так что подтвердите пропускную способность вашего сервера. Затем установите подходящее значение. По умолчанию 5 минут. Now set 10 seconds --> <property name="maximumActiveTime" value="10000"></property> <!-- The minimum number of idle connections to be kept (now set 20) --> <property name="prototypeCount" value="20"></property> <!-- The maximum number of connections (now set 100) --> <property name="maximumConnectionCount" value="200"></property> <!-- The minimum Количество соединений (теперь установлено 50)-> <name = "minimumConnectionCount" value = "50"> </property> <!-если true, то каждый выполненный оператор SQL будет регистрироваться в течение периода выполнения (уровень отладки). Вы также можете зарегистрировать ConnectionListener (см. Proxoolfacade), чтобы получить эту информацию. -> <name = "trace" value = "false"> </property> <name = "verbose" value = "true"> </property> </bean> <!-Регистрационное управление транзакциями-> <bean id = "txmgr"> <свойство = "DataSource" ref = "DataSource"> </property> </bean> <!-Turntation Annotation Annotation Annotation-> </property> </bean> <! Transaction-manager = "txmgr"/> <!-configure mybatis 'sqlSessionFactory-> <bean id = "sqlSessionFactory"> <name = "dataSource" ref = "dataSource"> </properation> <properation = "confighate" value = "classpath: mybatis-config.xml"> <//bean> <//bean> <//bean> <//bean> <//bean> <//bean> <//bean> </bean> <//bean> <//" сканер, который может сканировать карту в целом-> <Bean> <!-Если есть несколько отчетов, отделить их с запятыми-> <name = "name =" basepackage "value =" com.krry.mapper "> </property> <name =" sqlSessionFactorybeanname "value =" sqlSessionFactory "> </property> </bean> </beansebeanname" value = "sqlSessionFactory"> </property> </bean> </beansebeanname ". Файл конфигурации Spring MVC: Springmvc.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: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "http://www.springframe.orgema.orgema. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-Включите также драйвер режима аннотации-> <bean/> <! FormattingConversionserseSceactorybean-> <MVC: Annotation-Riven> <MVC: Сообщения-конвертерс-регистрации defaults = "true"> <bean> <name = "Поддержкамедедиатип"> <Situle> <value> text/plain; charset = utf-8 </value> <dute> properation> html; warse = utf-8 </value> </value> <datter> <dute> <dute/html; warset = utf-8 </value> <dute> <dather> <dather> <dathed> <dutemytypes> <ductedmatepes> <dutementhytypes> <dute/html; <bean/> <bean/> <bean> <bean> <свойство name = "prefixjson" value = "false"/> <name = "objectmapper"> <bean> <!-Обработка типа даты в образе ответа-> <свойство имя = "dateformat"> <bean> <constructor-Arge = "java.lang.string" /> </bean> </property> <!-Не отображается, когда поле null-> <property name = "serializationinclusion"> <value type = "com.fasterxml.jackson.annotation.jsoninclude.include"> non_null </value> </property> </bean> </property> <properation = "no_null </value> </property> </bean> </property> <property =". <dute> application/json; charset = utf-8 </value> <datter> application/xwww-form-urlencoded; charset = utf-8 </value> </list> </property> </bean> </mvc: compert-conterters> </mvc: аннотация> <! base-package = "com.krry.controller"> </context: component-scan> <!-Доступ к статическим файлам ресурсов должен быть установлен, потому что в конфигурации Springmvc все запросы (.do, Adduser, JS/Image/CSS) в этом проекте будут профинансированы SpringMVC, и все файлы STATIC должны быть FiLTERED-FILTERE и выпущенные. Фильтрация-> <!-<mvc: по умолчанию-спертлету-handler //>-> <mvc: mapport = "/"/resourse/** "location ="/resourse/"/> <!-Определение Interceptor-> <MVC: Interceptors> <MVC: Interceptor> <!-Персональный центр также нуждается в входе в конфигурации, начинающиеся с администратора в Addint-> <MVC: MVC: MVC: MVC: MVC. path = "/admin/**"> </mvc: картирование> <!-Это путь, который не будет вводить в перехват-> <mvc: exclide mapping path = "/resourse/**"/> <!-класс, который вводит перехватчик, возвращает false, чтобы указывать, что вход не будет вводить-> <bean/> </mvc: interceptor> </mvc:-> <bean/> </mvc: reterceptor> Parser-> <Bean id = "MultipResolver" P: DefaultEncoding = "UTF-8"> <name = "uploadtempdir" value = "/temp"> </property> <name = "maxUploadSize"> <Dague> 209715200 </value> <!-200mb-> </Propertive> <viltuard> "maxInmemememes '>" MaxInmems elevize'> "MaxInmemse"> "MaxIneMemize"> <! <dure> 4096 </value> <!-размер 4 кб Читать и записать-> </property> </bean> <!-Просмотр рендеринга JSP/FreeMaker/Velocity-> <Bean> <!-Создать путь к хранилищу страницы-> <Свойство = "prefix" value = "/web-inf/pages/"> </property> <! value = ". jsp"> </property> </beans>
Файл конфигурации базы данных: jdbc.properties
db.driver = oracle.jdbc.oracledriver db.url = jdbc: oracle: thin:@127.0.0.1: 1521: orcl db.username = 4m+la23kca4 = db.password = wwijciympau/= = =
Я использовал алгоритм шифрования здесь
Файл конфигурации журнала: log4j.properties
log4j.rootlogger = отлад, консоль, fileLog4j.appender.console = org.apache.log4j.consoleappenderlog4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversionpatterpattern =%d.myyyy-m-myyyy-myyyyou HH: MM: SS} %-5p [ %t] %10L - %m %nlog4j.appender.file = org.apache.log4j.rollingfileappenderlog4j.appender.file.file = d: /logs/log4j.loglog4j.appender.file.maxfilesizeize.plyle.prent.appender.appendencender.appendend.prendencendencender.prendend.prendencender.prendend.prendencender.prendend.prendencenden. truelog4j.appender.file.layout = org.apache.log4j.patternlayoutlog4j.appender.file.layout.conversionpattern = %d {yyyy/mm/dd/hh: мм: ss} %-5p [ %t] %10 л. Файл конфигурации mybatis: mybatis-config.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <perience> name = "cacheenabled" value = "true" /> <!-отключить мгновенную загрузку связанного объекта для производительности-> <настройка name = "lazyloadingenabled" value = "true" /> <!-Установите форму загрузки связанного объекта. Вот поле нагрузки по требованию (поле загрузки определено SQL). Все поля соответствующей таблицы не будут загружены для улучшения производительности-> <Настройка name = "AggeressiveLazying" value = "false" /> <!-для неизвестных запросов SQL, различные наборы результатов могут быть возвращены для достижения общего эффекта-> <настройка name = "Multiplestestestabledabled" value = "true" /> <! Разрешить использование колонны вместо названия столбцов-> <TrabLemable " /> <! value="true" /> <!-- Allow to use custom primary key values (such as UUID 32-bit encoding generated by the program as key values), and the PK generation strategy of the data table will be overwritten --> <setting name="useGeneratedKeys" value="true" /> <!-- Give nested resultMap support for field-attribute mapping --> <setting name="autoMappingBehavior" value="FULL" /> <!-Cache SQL для операций с обновлением пакетного обновления для повышения производительности-> <Настройка name = "defaultexeCutortype" value = "pacator" /> <!-тайм-аут, если база данных не ответила более 25 000 секунд-> <Настройка name = "defaultStatementtimeout" value = "25" /> <Установка = "LazyLoadTriggerMethods" value = "equals, clone, hashcode, tostring"/> </settings> <typealias> <!-псевдоним для пользовательского объекта-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/>-> <!-определение паттерного определения-> <comee. </конфигурация>
Файл конфигурации сетевой программы: web.xml
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee "//xmlns.jcp.org/xml/ns/javaee "//xmlns.jcp.org/xml/ns/javaee xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/weece_3_1" id = "webApp_id" version = "3.1"> <Slame-name> maven_ssm </display-name> <selcopply-file-list> <selclive-file> index </werving-file> </werveding-file-list> <!-Загрузка пружины ioc intainer-> <context-param> <param-name> contextconfiglocation </param-name> <param-value> classpath: ApplicationContext.xml </param-value> </context-param> <!-Spring Context relloder-> <Learser> <lloader-class> org.springframework.web.context.contextloaderlister </stirliger-class> </sluster> <!-Introsprosport Cache Cache <lloader-class> org.springframework.web.util.introspectorcleanuplistener </stirlicer-class> </alinger> <filter> <Filter-name> кодирование </filter-name> <Filter-class> org.springframework.web.filter.characterincodingfilter </filter-class> inparmeprame. <param-name> кодирование </param-name> <param-value> utf-8 </param-value> </init-param> </filter> <Filter-Mapping> <Filter-name> кодирование </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-конфигурация диспетчеры>/*</url-pattern> </filter-mapping> <!-конфигурация. <servlet-name> maven_ssm </servlet-name> <vervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <!-Настройка конфигурации Springmvc-> <!-Если следующие варианты не настроены, система повладует повладно. Springmvc01-servlet.xml-> <initparam> <param-name> contextConfiglocation </param-name> <param-value> classpath: springmvc.xml </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> maven_ssm </servlet> <urll.-pattern> laven-name> <urll.-pattern> laven_ssm </servlet> <urllet> <urllet> indextname> < / servlet-mapping> <!-Вы можете соответствовать *.do, *.Action (понимание) / (ключ): все запросы будут проанализированы с помощью Spring MVC, но статические файлы ресурсов должны быть отфильтрованы и выпущены. Рекомендуется использовать этот метод/*: не рекомендуется использовать-> <servlet-mapping> <servlet-name> maven_ssm </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
На этом этапе базовая конфигурация завершена, и пакет JAR автоматически опирается. Тестируйте и напишите последующий код Java
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.