Maven Building SSM 프로젝트에 대해 간단히 이야기 해 봅시다 (데이터베이스 사용 Oracle 사용 Oracle 사용은 MySQL보다 조금 더 번거 롭기 때문에 여기에 대해 이야기 해 봅시다).
Maven 웹 프로젝트를 만들 때 두 폴더 : 메인/Java 및 메인/테스트가 종종 누락됩니다.
해결책:
① : 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 라이브러리 아래에서 Java 빌드 경로를 클릭하고 JRE 시스템 라이브러리 편집 및 작업 공간 기본 JRE를 선택하십시오. (이것은 권장됩니다)
② : 디렉토리를 수동으로 만듭니다. 스위치 뷰는 네비게이터 뷰를 사용하고 SRC/메인 디렉토리에서 Java 디렉토리를 직접 작성합니다.
프로젝트 디렉토리 구조 :
중요한 구성 파일 :
객체 모델 구성 파일 : pom.xml
Spring의 구성 파일 : ApplicationContext.xml
스프링 MVC 구성 파일 : SpringMvc.xml
데이터베이스 구성 파일 : jdbc.properties
로그 구성 파일 : log4j.properties
mybatis 구성 파일 : mybatis-config.xml
네트워크 프로그램 구성 파일 : web.xml
먼저 pom.xml을 구성하십시오
POM.XML은 주로 프로젝트의 Maven 좌표, 종속성을 설명하고 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/0.0.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> com.krry </groupid> <artifactid> maven_ssm </artifactid> <version> 0.0.1-snapshot> <name> maven_ssmsm </napshot> <Url> http://maven.apache.org </url> <pectionmenties> <!-Junit-> <prectionement> <groupid> junit </groupid> <atrifactid> junit </artifactid> <버전> 4.11 </version> <scope> </scope> </scope> <!-종속성>을 소개합니다. <groupid> javax.servlet </groupid> <artifactid> servlet-api </artifactid> <bersion> 3.0-alpha-1 </version> </scope> 제공 </scope> </fectionency> <!-jstl의 패키지를 소개합니다-> <pection> <groupid> jstl </groupid> <artifactid> jstl </artifactid> </artifactid> </scope> </fectionency> <! 제공 JSP의 컴파일 종속성 소개-> <pectionement> <groupId> javax.servlet.jsp </groupId> <artifactid> jsp-api </artifactid> <spope> 제공 </scope> </scope> <!-jsp ~ jsp ~ jsp ~ jsp ~ jsp ~ jsp rependence <groupid> log4j </groupid> <artifactid> log4j </artifactid> <버전> 1.2.17 </version> </fectionency> <!-Spring Springmvc mybatis-> <!-Spring and SpringMVC 관련 구성 요기-> <groupid> org.springframework </artifactid> spring </artifactid> <버전> 4.2.1. Release </version> </dependency> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <version> 4.2.1. Release </version> </fexendence> <!-springmvc-related-> <groupid> org.spramwork. <Artifactid> Spring-Webmvc </artifactid> <bersion> 4.2.1. Release </version> </fectionency> <!-SpringMVC가 JSON 변환 패키지 Jackson-> <pectionency> <groupsidency> com.fasterxml.jackson.core </groupid> <artifactid> jackson-core> </version> </version> </version> </version> 2.4를 요구합니다. <groupid> com.fasterxml.jackson.core </groupid> <artifactid> jackson-nantations </artifactid> <bersion> 2.5.4 </version> </dependency> <prectionency> <groupid> com.fasterxml.jackson.core </groupid> <artifactid> jackson-databind </artifactid> <!-JSR303 배경 검증 최대 인사 유효성 검사기-> <pectionency> <groupid> org.hibernate </groupid> <tritifactid> hibernate-validator </artifactid> <버전> 5.1.1.final </version> </dependency> <!-File-RELATION PACKAGES-> <GroupLiD> </</Io </Io-IO-IO-IO-IO-IO. <artifactid> commons-io </artifactid> <bersion> 2.4 </version> </dependency> <pectionement> <groupId> Commons-FileUpload </groupId> <artifactid> commons-fileupload </artifactid> <버전> 1.3.1 </version> </fexendency> <groupid> org.apache.commons. <artifactid> commons-lang3 </artifactid> <bersion> 3.3.2 </version> </fectionency> <!-암호화 알고리즘과 관련된 코덱-> <pectionency> <groupid> commons-codec </groupid> <artifactid> commons-codec </artifactid> <9 version> </dependent> </jdbc 옵션> </jdbc -> <!-Oracle Database Driver-> <pectionement> <groupId> com.oracle </groupId> <artifactid> ojdbc6 </artifactid> <bersion> version> 12.1.0.2.0 </version> <! <!-mysql database driver (여기서 사용되지 않음)-<grouplency> mysql> mysql> <Artifactid> mysql-connector-java </artifactid> <bersion> 5.0.8 </version> <cope> 런타임 </scope> </specop> </specop> </specop> </specop> </<pectionency> <groupid> com.cloudHopper.proxool </groupId> <Artifactid> proxool </artifactid> 0.9.9.10 </version>. <pectionency> <groupid> com.cloudhopper.proxool </groupid> <artifactid> proxool-cglib </artifactid> <버전> 0.9.1 </version> </fectionency> <!-mybatis에 필요한 JAR 패키지를 소개합니다-> <pection> <groupid> org.mybatis </artifactid> myBatis> <버전> 3.3.1 </version> </dependency> <pectionency> <groupId> org.mybatis </groupId> <artifactid> mybatis-spring </artifactid> <버전> 1.2.4 </dependency> <!-페이지 매김 관리에 필요한 JAR 패키지는 여기에 사용되지 않습니다-> groupid> com.github.github.github.github. <Artifactid> PageHelper </artifactID> <버전> 4.2.1 </version> </fectionement> </fectionements> <build> <플러그인> <artifactid> maven-compiler-plugin </artifactid> <configuration> <court> 1.7 </source> 1.7 </target> </configuration> </configin> <Artifactid> maven-war-plugin </artifactid> <bersion> 2.4 </version> <configuration> <bersion> 3.0 </version> </configuration> </plugin> </plugins> <finalname> maven_ssm </finalname> </build> </project>
다음은 pom.xml을 사용하여 Oracle Driver 패키지를 가져 오는 Maven 프로젝트에 대한 질문입니다.
Oracle 승인 문제로 인해 Maven은 Oracle JDBC 드라이버를 제공하지 않습니다. Maven 프로젝트에 Oracle JDBC 드라이버를 적용하려면 로컬 저장소에 수동으로 추가해야합니다.
Oracle 데이터베이스가 컴퓨터에 이미 설치된 경우 설치 경로 아래에 데이터베이스 드라이버가 있으며 직접 사용할 수 있습니다. d : /oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
Oracle 공식 웹 사이트에서 직접 Oracle 데이터베이스 드라이버를 다운로드하고 SQL 문을 사용하여 데이터베이스 드라이버의 버전을 쿼리 할 수도 있습니다.
그런 다음 버전 다운로드를 확인하십시오 : http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html
Windows의 명령 줄 인터페이스를 열고 드라이버 패키지 OJDBC6의 디렉토리를 입력 한 다음 실행하십시오.
MVN 설치 : 설치 파일 -dgroupid = com.oracle -dartifactid = ojdbc6 -dversion = 12.1.0.2.0 -dpackaging = jar -dfile = ojdbc6.jar
"Build Success"가 성공적으로 표시되면 Maven 로컬 저장소가 자동으로 가져옵니다.
그런 다음 Maven 프로젝트에 종속성을 추가 할 수 있으며 각 좌표는 다음과 같이 위 명령의 요소에 해당합니다.
<pectionency> <groupid> com.oracle </groupid> <artifactid> ojdbc6 </artifactid> <bersion> 12.1.0.2.0 </version> </fectionency>
Spring의 구성 파일 : ApplicationContext.xml
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.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.springframwork.org/schema/util. xmlns : p = "http://www.springframework.org/schema/p"xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.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.spramework.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/sprger-3.0.0.0.1 스캔-> <context : component-scan base-package = "com.krry"> < /context : comperment-scan> <!-외부 리소스 가져 오기-> <!-<context : context : propert-placeholder location = "classPath : jdbc.properties" />-> <bean p : location = "jdbc.properties"p : file-Encoding. proxool 연결 풀-> <bean id = "dataSource"> <!-드라이버 이름, mysql-> <속성 이름 = "driver"value = "$ {db.driver}"> </property> <!-proxool이의 URL 연결 문자열은 사용자 이름과 비밀번호를 결정해야합니다-> <property name = "driverUrl"value = "$ {useN (useN) 사용되었지만 제외 될 수는 없지만)-> <속성 이름 = "사용자"value = "$ {db.username}"> </property> <!-비밀번호 (proxool은 사용되지 않지만 삭제할 수 없음)-> <property name = "password"value = "$ {db.password}"> </propert> <!-Proxool의 시간 간격이 자동으로 재구성됩니다 (millisecond). 정찰이 완료되면 즉시 재활용하십시오. 타임 아웃 파괴는 이제 4 초로 설정되었습니다)-> <속성 이름 = "HouseKeepingsLeepTime"value = "3000"> </propert> <!-연결이 깨진 것인지 자동으로 확인하십시오-> <property name = "testbeforeuse"value = "true"> </propert> <!-유휴 데이터베이스 연결이 발견되면이 문장으로 집 관리자가 테스트됩니다. 이 진술은 매우 빠르게 실행됩니다. 정의되지 않으면 테스트 프로세스가 무시됩니다-> <속성 이름 = "houseKeepingTestSql"value = "듀얼에서 count (1)을 선택하십시오"> </property> <!-가정부가 스레드의 활동 시간 이이 값보다 큰 것을 감지하는 경우. 실을 죽일 것입니다. 따라서 서버의 대역폭을 확인하십시오. 그런 다음 적절한 값을 설정하십시오. 기본값은 5 분입니다. 이제 10 초를 설정-> <속성 이름 = "maximumActiveTime"value = "10000"> </property> <!-유지할 최소 유휴 연결 수 (지금 Set 20)-> <속성 이름 = "PropotyPeCount"value = "20"> </속성> <!-최대 연결 수 (지금 세트 100)-> 특성 = < "200 value ="> 최소 연결 수 (이제 50 세트)-> <속성 이름 = "MinimumConnectionCount"value = "50"> </property> <!-실행 된 각 SQL 문은 실행 기간 (디버그 레벨) 중에 로그인됩니다. 이 정보를 얻으려면 ConnectionListener (proxoolfacade 참조)를 등록 할 수도 있습니다. -> <property name = "trace"value = "false"> </propert> <property name = "verbose"value = "true"> </property> </bean> <!-등록 트랜잭션 관리자-> <bean id = "txmgr"> <property name = "dataSource"ref = "dataSource"> </propert> </bean> <! transaction-manager = "txmgr"/> <!-myBatis의 sqlsessionFactory-> <bean id = "sqlsessionFactory"> <property name = "dataSource"ref = "dataSource"> </property> <property name = "configlocation"value = "classpath : mybatis-config.xml"> </bean> </bean>> </bean>> </bean> </bean> </bean> <! 맵퍼를 전체적으로 스캔 할 수 있습니다-> <ean> <!-여러 보고서가있는 경우 쉼표로 분리 할 수 있습니다.> <속성 이름 = "BasePackage"value = "com.krry.mapper"> </property> <property name = "sqlsessionfactorybeanname"value = "sqlsessionCactory"> </beans> 스프링 MVC 구성 파일 : SpringMvc.xml
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.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.springframwork.org/schema/mvc" xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/contet http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.spramework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-주석 모드 드라이버를 켭니다.> <bean/> <!-MVC 사용자도 켜기 서브 user a Conctormer에 등록하십시오. FormattingConverserViceFactoryBean-> <MVC : Annotation-Driven> <MVC : Messe-Converters Register-Default = "true"> <bean "> <bean> <property name ="supportedMediAtypes "> <list> 텍스트/plain; charset = utf-8 </value> <talue> text/html; charset = utf-8 </value> </value> </value> </value> <bean/> <bean/> <ean> <ean> <property name = "prefixjson"value = "false"/> <property name = "objectmapper"> <ean bean> <!-응답 body의 날짜 유형을 처리합니다-> <property name = "dateformat"> <ean> <constructor-arg type = "java.lang.string"value = "value ="value =. </property> <!-필드가 null 일 때 표시되지 않음-> <속성 이름 = "serializationInclusion"> <value type = "com.fasterxml.jackson.annotation.jsoninclude.include"> non_null </value> </property> </bean> </property> <property name = "supportedMediAtypes"> char <ut-8 <value> application/x-www-form-urlencoded; charset = utf-8 </value> </list> </property> </bean> </mvc : message-converters> </mvc : 주석-구동> <!-스캔 패키지-> <context : component-scan base-package = "com.krry.controller"> component : </conte> SpringMVC 구성 에서이 프로젝트의 모든 요청 (.DO, AddUser, JS/Image/CSS)이 SpringMVC에 의해 구문 분석되고 모든 정적 리소스 파일을 필터링하고 해제해야하므로 리소스 파일을 설정해야합니다 .-> <!-다음 정적 자원 필터링-> <!-<mvc : mvc : mvc : rounds 중 하나를 선택해야합니다. 매핑 = "/resourse/**"위치 = "/resourse/"/> <!-인터셉터 정의-> <mvc : interceptors> <mvc : interceptor> <!-개인 센터는 관리자로 시작하여 구성에 시작하여 구성에 로그인해야합니다-> <mvc : 맵핑 경로 = "/admin/**"> </mvc : <! <MVC : 제외 맵핑 경로 = "/resourse/**"/> <!-인터셉터가 들어가는 클래스는 입력이 입력되지 않도록 거짓을 반환하여-> <bean/> </mvc : interceptor> </mvc : interceptors> <!-<a bea id = "propery"> 이름 = "uploadtempdir"value = "/temp"> </property> <속성 이름 = "maxUploadsize"> value> 209715200 </value> <! <!-200MB-> </property> <속성 이름 = "maxInmemorySize"> <value> 4096 </value> <!-4KB 크기 읽기-> </bean>> <!-view rend. JSP/Freemaker/Velocity-> <ean> <!-페이지 스토리지로가는 경로를 만듭니다-> <속성 이름 = "prefix"value = "/web-inf/pages/"> </posity> <!-파일 접미사-> <속성 이름 = "접미사"value = ".
데이터베이스 구성 파일 : 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 = debug, console, filelog4j.appender.console = org.apache.log4j.consoleAppenderlog4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversionpattern =%d v HH : MM : SS} %-5p [ %T] %10L- %M %NLOG4J.APPENDER.FILE = org.apache.log4j.rollingFileAppenderLog4j.appender.file.file = D : /logs/Log4J.loglog4j.appender.file.MaxFilesize=1MBLOG4J.Append. truelog4j.appender.file.layout = org.apache.log4j.patternlayoutlog4j.appender.file.layout.conversionpattern = %d {yyyy/mm/dd/hh : mm : ss} %-5p [ %t] %10l - %m %n mybatis 구성 파일 : mybatis-config.xml
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd "> configuration> 이름 = "Cacheenabled"value = "true" /> <!-성능에 대한 관련 객체의 즉각적인로드를 끕니다-> <설정 name = "lazyloadingEnabled"value = "true" /> <!-관련 객체의로드 형태를 설정하십시오. 다음은 주문형 부하 필드입니다 (부하 필드는 SQL에 의해 지정 됨). 관련 테이블의 모든 필드는 성능을 향상시키기 위해로드되지 않습니다-> <설정 이름 = "AttressivelaZyloading"value = "false" /> <!-알 수없는 SQL 쿼리의 경우 공통 효과를 달성하기 위해 다른 결과 세트를 반환 할 수 있습니다-> <value = "true"! value = "true" /> <!-사용자 정의 기본 키 값 (예 : 프로그램에 의해 생성 된 UUID 32 비트 인코딩과 같은), 데이터 테이블의 PK 생성 전략은 덮어 쓰기-> <setting name = "usegeneratedkeys"value = "true" /<!-<value-attribute 맵핑에 대한 중첩 결과를 제공합니다. " <!-성능을 향상시키기위한 배치 업데이트 작업 용 캐시 SQL-> <설정 이름 = "defaultexecutople"value = "batch" /> <!-시간 초과 데이터베이스가 25,000 초 이상 응답하지 않은 경우-> <설정 이름 = "defaultStatementTimeout"value = "25" /> names name = "LazylTriggerMemods" value = "Equals, Clone, Hashcode, ToString"/> </settings> <tondealias> <!-사용자 정의 사용자 객체의 별칭-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user"alias = "user"/>-> <!-Batch Deferent alias-> packet alias = "com.krry"/>. </구성>
네트워크 프로그램 구성 파일 : 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" xsi : schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd. id = "webapp_id"version = "3.1"> <display-name> maven_ssm </display-name> <welcce-file-list> <welcome-file> index </welcome-file> </welcome-file-list> <!-Spring IOC 컨테이너로드-> <ceterxt-param> <Param-name> contextConfigLocation> <Param-value> classpath : ApplicationContext.xml </param- value> </context-param> <!-스프링 컨텍스트 청취자-> <liseer> <layer-class> org.spramework.web.context.contextLoaderListener </Lister-Class> </Lister> <introspector Cache Cache Clese-> <Leater-Class> org.springframework.web.util.introspectorcleanUplistener </laiseer-class> </listener> <filter> <filter-name> 인코딩 </filter-name> <filter-class> org.springframework.web.filter.caracteracteracterecterodingfilter </filter class> <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> <servletureververvlet-> servgure ervervlet-> servgure-mapperne-> <url-pattern>/* <Servlet-name> maven_ssm </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet.dispatcherServlet </servletclass> <!-SpringMVC 구성 파일-> <!-다음 옵션이 구성되지 않으면 [servlet-name] -Servlet.xml에있는 시스템을로드합니다. SpringMvc01-servlet.xml-> <init-param> <param-name> contextConfiglocation </param-name> <param-value> classpath : springmvc.xml </param- value> </init-param> </servlet> <servlet-mapping> <servlet-name> maven_sm </servlet-name> <Url-pattern>/index </url-pattern> </servlet-mapping> <!- *.do, *.Action (이해)/(키) : 모든 요청은 Spring MVC에 의해 구문 분석되지만 정적 리소스 파일을 필터링하고 해제해야합니다. 이 메소드를 사용하는 것이 좋습니다/*:> <servlet-mapping> <servle-name> maven_ssm </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
이 시점에서 기본 구성이 완료되고 JAR 패키지가 자동으로 의존합니다. 후속 Java 코드를 테스트하고 작성하십시오
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.