Vamos falar brevemente sobre o Maven Building SSM Project (usando o banco de dados Oracle é um pouco mais problemático que o MySQL, então vamos falar sobre isso aqui)
Ao criar projetos da Web Maven, duas pastas: Main/Java e Main/Teste geralmente estão faltando.
Solução:
①: Clique com o botão direito do mouse no projeto e selecione Propriedades, depois clique em Java Build Path, sob as bibliotecas, edite o JRE System Library e selecione JRE padrão do espaço de trabalho JRE. (Isso é recomendado)
②: Crie um diretório manualmente. A visualização do Switch usa a exibição do navegador e cria diretamente um diretório Java no diretório SRC/Main.
Estrutura do diretório do projeto:
Arquivos de configuração importantes:
Arquivo de configuração do modelo de objeto: pom.xml
Arquivo de configuração da Spring: ApplicationContext.xml
Arquivo de configuração MVC da primavera: springmvc.xml
Arquivo de configuração do banco de dados: jdbc.properties
Arquivo de configuração de log: log4j.properties
Arquivo de configuração mybatis: mybatis-config.xml
Arquivo de configuração do programa de rede: web.xml
Primeiro configure pom.xml
O POM.XML descreve principalmente as coordenadas, dependências do Maven do projeto e apresenta automaticamente pacotes 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 "> <ModelVersion> 4.0.0 </modelVersion> <voundid> com.krry </groupiD> <TarifactId> MAVEN_SSM </ArtifactId> <bours> 0,0.1-snapshot> <url> http://maven.apache.org </erl> <pendences> <!-Introduce Junit-> <pendency> <puperid> junit </foupiD> <TRARFACTID> JUNIT </ArtifactId> <sipers> 4.11 </versão> <Cope> Teste </cope> </!-Introduced> 4,11 </version> <locpe> Test </scope> <! <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> <scope>provided</scope> </dependency> <!--Introducing the package of jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>provided</scope> </dependency> <!--Introducing the compilation dependency of jsp--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!--Introducing the compilation dependency of jsp--> <dependency> <GrupId> log4j </frupiD> <TRAFACTID> log4J </STIFACTID> <Versão> 1.2.17 </versão> </dependency> <!-Spring Springmvc mybatis-> <!-Spring e Springmvc Related Jar-> <Depency> <Grupid> Org.SpringFameRwid </GrupoId> <Versão> 4.2.1.release </sipers> </dependency> <pendency> <voundid> org.springframework </groupiD> <TRATIFACTID> spring-jdbc </artifactId> <versão> 4.2.1.release </versão> </dependency> <!-springmvc-related-> <idence> <idence> <TRATIFACTID> Spring-webmvc </ArtifactId> <versão> 4.2.1.release </siers> </dependency> <!-springmvc requer pacote de conversão JSON Jackson-> dependency> <purfacer> com.fasterxml.jackson.core </groupid> <TifactId> jackson-core </art. <Depencency> <PuerpId> com.fasterxml.jackson.core </groupiD> <TRAFACTID> Jackson-Annotações </ArtifactId> <Version> 2.5.4 </sipers> </dependency> <Sependency> <sermSershiS> com.fasterxml.jackson.core </proupid> <stersiSsiS> Jackson-d.Fasterxml.jackson.core </Groupid> <stersiSsi> </dependency> <!-JSR303 Verificação de fundo Hibernate Validator-> <pendency> <voundid> org.hibernate </frupidId> <ArtifactId> hibernate-validador </!-compartid> <sersuold> 5.1.1.final </versão </dependência> <!-comandos-related Packages Packages- <TRAFACTID> Commons-Io </stifactId> <versão> 2.4 </version> </dependency> <pendence> <puperid> Commons-FileUpload </GroupId> <TRAFACTID> Commons-FileUpload </ArtifactId> <Versão> 1.3.1 </versão </dependence> <spendenceM> </ArtifactId> Commons-LANG3 </ArtifactId> <Versão> 3.3.2 </sistER> </Dependency> <!-Codec relacionado aos algoritmos de criptografia-> <bourfactId! mybatis-> <!-Oracle Database Driver-> <Ependency> <rouprouid> com.oracle </foupiD> <stifactId> ojdbc6 </sutifactId> <versão> 12.1.0.2.0 </sipers> </dependency> <!-MySQL Database Driver (não usada aqui, o driver acima)-Usado)-Usado) </pendency> <!-MySQL Database Driver (não usada aqui, o driver acima)-Usado)-Usado) </pendency> <!-! <GrupId> mysql </frugiD> <TRORFACTID> mysql-conector-java </artifactId> <versão> 5.0.8 </siers> <cope> runtime </scope> </dependency>-> <!-Proxool Connection Pool-> <pendência> <purbol> com.clowhopper.proxool <! <versão> 0.9.1 </versão> </dependency> <pendence> <puperid> com.cloudhopper.proxool </groupiD> <stifactId> proxool-cglib </storkactId> <versão> 0.9.1 </versão> </dependency> <!-Introdução do pacote de jar exigido por mybatis-> <pendência> <TRAFACTID> mybatis </storkactid> <versão> 3.3.1 </version> </pendence> <pendency> <puperiD> org.mybatis </groupId> <stifactId> mybatis-spring </stifactId> <versão> 1.2.4 </versão> </dependence>-pacote de jarring obrigatório para o jaring para o jaring requerido para o pacote de jarra para o jarra para o jarra para o jarra, para o pacote de gestão, para o pacote de gestão, para o pacote de gestão, para o jarra, para o pacote de jarra, para o pacote de jarra, para o jarra, para o pacote de jar. <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.2.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </figuration> </plugin> <lampleg> <TRORFACTID> maven-war-plugin </artifactId> <versão> 2.4 </siers> <figuration> <Version> 3.0 </versão> </figuration> </plugin> </plugins> <FinalName> MAVEN_SSM </finalname>
Aqui está uma pergunta sobre o projeto MAVEN usando o pom.xml para importar o pacote de driver Oracle:
Devido a problemas de autorização do Oracle, o MAVEN não fornece o Oracle JDBC Driver. Para aplicar o driver do Oracle JDBC em projetos Maven, ele deve ser adicionado manualmente ao repositório local.
Se o banco de dados Oracle já estiver instalado no computador, existe um driver de banco de dados no caminho da instalação e poderá ser usado diretamente. D: /oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
Você também pode baixar o driver do Oracle Database diretamente do site oficial do Oracle e usar as instruções SQL para consultar a versão do driver de banco de dados: selecione * FROM V $ Instância
Em seguida, confirme o download da versão: http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html
Abra a interface da linha de comando do Windows, digite o diretório do pacote de driver ojdbc6 e, em seguida, execute:
MVN Instale: Install -File -dGroupId = com.oracle -DartifactId = ojdbc6 -dversion = 12.1.0.2.0 -dpackaging = jar -dfile = ojdbc6.jar
Se "Build Success" for exibido com sucesso, seu repositório local do Maven será importado automaticamente.
Em seguida, você pode adicionar dependência ao projeto Maven, e cada coordenada corresponde aos elementos do comando acima, como segue:
<Depencency> <voundid> com.oracle </frugiD> <TRAFACTID> ojdbc6 </artifactId> <versão> 12.1.0.2.0 </sisters> </dependency>
Arquivo de configuração da Spring: ApplicationContext.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.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 O objetivo deste estudo foi avaliar a eficácia de um http://www.springframework.org/schema/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aops de http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tg/schema http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd "> <!-- Configuration package scanning --> <context:component-scan base-package="com.krry"></context:component-scan> <!-- Import external resource file--> <!-- <context:property-placeholder location="classpath:jdbc.properties" /> --> <bean p:location="classpath:jdbc.properties" p:fileEncoding="utf-8" /> Pool de conexão Proxool-> <bean id = "DataSource"> <!-Nome do driver, mysql-> <propriedade name = "driver" value = "$ {db.driver}"> </property> <!-proxool a sequência de conexão de url isto deve determinar o nome do usuário e a senha-> <names = "driverl" ". (O proxool não é usado, mas não pode ser deixado de fora)-> <propriedade name = "user" value = "$ {db.username}"> </propriedade> <!-senha (o proxool não é usado, mas não pode ser deixado de fora)-> <! Quando o reconhecimento for feito, recicle -o imediatamente. A destruição do tempo limite agora está definida como 4 segundos)-> <Propriedade name = "Housekeepingsleeptime" value = "3000"> </propriedade> <!-Verifique automaticamente se a conexão está quebrada-> <Nome da propriedade "" TestBeforeuse "Value =" True "> </Property> <!-Se uma conexão de dados de dados é encontrada, o Kouse Keeper será testado com este testado. Esta afirmação é melhor executada muito rapidamente. Se não estiver definido, o processo de teste será ignorado-> <Property name = "HousekeepingTestSql" value = "Selecione a contagem (1) de Dual"> </erouse> <!-Se a casa do empreendimento detectar que o tempo de atividade de um encadeamento é maior que esse valor. Isso vai matar o fio. Portanto, confirme a largura de banda do seu servidor. Em seguida, defina um valor adequado. O padrão é de 5 minutos. Definir 10 segundos-> <propriedade name = "maximumActiveTime" value = "10000"> </propriedade> <!-o número mínimo de conexões inativas a serem mantidas (agora definidas 20)-> <Nome da propriedade = "PrototyCount" Value = "20"> </propriedade> <!-O número máximo de conexões (agora set 100)-> Número mínimo de conexões (agora definido 50)-> <Property name = "MinimumConnectionCount" value = "50"> </propriedade> <!-Se true, cada instrução SQL executada será registrada durante o período de execução (nível de depuração). Você também pode registrar um ConnectionListener (consulte o ProxOolfacade) para obter essas informações. -> <Propriedade name = "trace" value = "false"> </propriedade> <propriedade name = "verbose" value = "true"> </propriedade> </bean> <!-registrar gerenciador de transações-> <bean id = "txmgr"> <names name = "DataSource" ref = "transtroceation"> </property> <! transação transact-manager = "txmgr"/> <!-configure mybatis 'sqlSessionFactory-> <bean id = "sqlSessionFactory"> <names name = "datasource" ref = "DataSource"> </propriedade> <names = "configlocation" = "classpath: mybatis-conflflfnfig.-A propriedades! Scanner que pode digitalizar o mapeador como um todo-> <Bean> <!-Se houver vários relatórios, separe-os com vírgulas-> <propriedades = "Basepackage" value = "com.krry.mapper"> </ousether> <Nome da propriedade = "SQLSessionFactoryBeanName" Value = "SQLSessactory" </propriedade> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </bens> </propriedade> </bens> </bens> </bens> </bens> </bens> </bens> </beper Arquivo de configuração MVC da primavera: springmvc.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "htttp://schema/util" xmlns: mvc = "htttp://schema/util" Xmlns: xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://ww.springframework.org/schema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-ativar o modo de anotação do modo de anotação-> <Bean/> <! FormattingConversionServiceFactoryBean-> <MVC: AnoTation-Driven> <MVC: Message-Converters Register-Defaults = "True"> <Bean> <propriedades name = "SupportedMediTyPes"> <tist> <Value> text/planing; charset = utf-8 </value> <taltion> text/text/listml> <Value> </bean> <bean/> <bean/> <ean> <ipean> <propriedade name = "prefixjson" value = "false"/> <propriedade name = "objectMapper"> <Bean> <!-lidar com o tipo de data no respostas-> <nome da propriedade "date"> <Bean> <constructor-arg type = " Hh: mm: ss "/> </i bean> </propriedade> <!-não exibido quando o campo é nulo-> <propriedade name =" serializationinclusion "> <value type =" com.fasterxml.jackson.annotation.jsoninclude.include "> não_null </value> </propriedade> </bley <Value> Application/json; charset = utf-8 </value> <value> Application/x-www-form-urlencoded; charset = utf-8 </value> </list> </propriedade> </bean> </mvc: Message-Converters> </mvc: annotcan-driven> <! Base-Package = "com.krry.controller"> </context: component-Scan> <!-O acesso a arquivos de recursos estáticos deve ser definido, porque na configuração Springmvc, todas as solicitações (.do, addUser, js/imagem/css) neste projeto serão divulgadas por springmvc e todos os recursos estática em que os springs-e todos os recursos estática-e todos os recursos da STILMV-e de todos os recursos da STILMVC e todos os recursos estáticos e todos os recursos da SpringMV e todos os recursos da Springn e todos os estatais e todos os recursos da Springn e todos os recursos da Spring e todos os recursos da Spring e todos os recursos de Spring e todos os recursos da Spring e todos os recursos devem <!-<MVC: Padrão-Servlet-Handler //>-> <MVC: Recursos Mapping = "/Resourse/**" Location = "/Resourse/"/> <!-Interceptor Definition-> <MVC: Interceptors> <MVC: Interceptor> <!-Centro também precisa fazer login para confundir com a manutenção-para o MAIMETCIMENTO-MVC: MVC: Interceptor> <!-! path = "/admin/**"> </mvc: mapeando> <!-Este é o caminho que não entrará no interceptor-> <mvc: exclui-mapping path = "/Resourse/**"/> <!-a classe que o interceptor entra, retorna false para indicar que a entrada não entrará-> <Bean/> </> Parser-> <bean id = "multipartResolver" p: defaultEncoding = "utf-8"> <names name = "uPLOUPTEMPDIR" value = "/temp"> </property> <names name = "maxuploadSize"> <Value> 209715200 </value <!-200mb-> <Value> 4096 </value> <!-4KB Tamanho Leia e escreva-> </propriedade> </bean> <!-Visualize JSP/FreeMaker/Velocity-> <iBean> <!-Crie um caminho para o armazenamento da página-> <Nome da propriedade = "FILHE" FILHE "=" Web-in/Pages/"> </! value = "
Arquivo de configuração do banco de dados: 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/= = = =
Eu usei o algoritmo de criptografia aqui
Arquivo de configuração de log: 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{yyyy-MM-dd Hh: mm: ss} %-5p [ %t] %10l - %m %nLog4j.appender.file = org.apache.log4j.rollingFileAppenderLog4j.appender.file.file = d: /logs/log4j.LogLog4j.ilesfile.file = d: /logs/log4j.LogLog4j.ilesfile.file = d: /logs/log4j.LogLog4j.ilesfile.File = d: /logs/log4j.LogLog4j.ilesfile.File = d: /logs/log4j.LogLog4j.ilesfile.File = d: /logs/log4j.LogLog4j.ilesfile.File = D: /logs/log4j.LogLog4j.ilesfile.File = D: /Logs/Log4JE tuelog4j.appender.file.layout = org.apache.log4j.patternlayoutLog4j.appender.file.layout.conversionPattern = %d {yyyy/mm/dd/hh: mm: ss} %-5p [ %t] %10l - Arquivo de configuração mybatis: mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- Global mapper enable cache--> <setting name = "Cacheenabled" value = "true" /> <!-Desligue o carregamento instantâneo do objeto associado para desempenho-> <Configuração name = "LazyLoadingEnabled" value = "true" /> <!-Defina a forma de carregamento do objeto associado. Aqui está um campo de carga sob demanda (o campo de carga é especificado pelo SQL). Todos os campos da tabela associada não serão carregados para melhorar o desempenho-> <Configuração name = "agressiveLazyLoading" value = "false" /> <!-Para consultas SQL desconhecidas, diferentes conjuntos de resultados podem ser retornados para obter um nome comum-> <finfitn Name = "multiperresultsetsenabled" = "True" /> <! value = "true" /> <!-Deixe usar valores de chave primária personalizados (como a codificação UUID de 32 bits gerada pelo programa como valores-chave), e a estratégia de geração PK da tabela de dados será substituída-> <definir nome "useGeneratedKeys" value = "true" /> <!-Nome de acordo com o Nome "para o nome do campo" <!-cache sql para operações de atualização em lote para melhorar o desempenho-> <configuração name = "defaultExecutype" value = "batch" /> <!-Tempo limite se o banco de dados não respondeu por mais de 25.000 segundos-> <fodergrigergmethssSodss "valueout" /"25" /> <nome do nome = "lazyloadTrrigMethss" </fastings> <TyceAlias> <!-Alias para objeto de usuário personalizado-> <!-<typeAlias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/>-> <!-Alias de definição em lote-> <Nome do pacote "/com.krry.entity"/> <pypyeliações
Arquivo de configuração do programa de rede: 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" versão = "3.1"> <lame-name> maven_ssm </sisplay-name> <lumer-fil-list> <lmed-File> Índice </limk-File> </lorma-File-List> <!-Carregando Spring IOC Container-> <Context-Param> <aam-name> ContextconfigLocalocation </Park-Name> <Maver-value> ClassPath: ApplicationContext.xml </amam-value> </context-param> <!-Spring Context ouvinte-> <Ilvier> <Ivier-class> org.springframework.web.context.contextloaderListener </listen-class> </fister> <!-introsextor cache cache cache cache cache cache cache cache cache cachener </lidener-class clasts </fister> <!-introsext.Cext.ConterLonderListenerListener ListerListener) <!-IntrosporpOrt Cacher CacherListener) <Ilvier-class> org.springframework.web.util.introspectorcleanuplistener </lirer-class> </ouvinte> <filter> <filter-name> Encoding </filter-name> <filter-class> org.springframework.web.filter.characterncodforfilter <rorg.springframework.web.filter.characterncodfilter </filter-class> <amam-name> codificação </amam-name> <amam-value> utf-8 </param-value> </irit-param> </ftrhter> <filter-mapping> <filter-name> codificação </ftrhter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-Configure DispatherLe <Verlet-name> MAVEN_SSM </Servlet-Name> <Servlet-Class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <!-Configure Springmvc Configuration File-> <! springmvc01-servlet.xml-> <ingit-param> <amam-name> contextConfigLocation </param-name> <amam-value> classpath: springmvc.xml </param-value> </init-param> </servlet> <verlet> <rutletname> Maven_ssmsm <ssm> < / servlet-mapping> <!-você pode corresponder *.do, *.Action (compreensão) / (chave): todas as solicitações serão analisadas pelo MVC da primavera, mas os arquivos de recursos estáticos devem ser filtrados e liberados. Recomenda-se que você use este método/*: não é recomendável que você use-> <Verlet-Mapping> <Verlet-name> MAVEN_SSM </Servlet-Name> <url-Pattern>/</url-tattern> </vlett-Mapping> </web-app>
Neste ponto, a configuração básica está concluída e o pacote JAR é automaticamente confiado. Teste e escreva o código Java subsequente
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.