Integração com Spring3
Como estrutura básica, a primavera pode integrar estruturas de back-end, como hibernado, mybatis, etc.
O artigo anterior apresenta apenas o uso de Mybatis, e a lógica geral é:
SQLSessionFactory <- Arquivo de configuração (incluindo configuração de conexão do banco de dados)
Ixxxmapper <- sqlSession <- sqlSessionFactory
<- Mapper Interface <- Mapper XML
Depois de obter o ixxmapper, você pode chamar seu método para interação de dados.
Ao integrar a primavera, os objetos acima precisam ser gerenciados como feijão:
DataSource Bean <- Configuração de conexão do banco de dados
SQLSessionFactory Bean <- DataSource
<- arquivo de configuração
UsermApper Bean <- SQLSessionFactory
<- interface do mapeador
1. Adicione dependências em pom.xml:
<Properts> <mybatis.spring.version> 1.2.1 </mybatis.spring.version> <dbcp.version> 1.4 </dbcp.version> <pring.version> 3.1.2.release </spring.version> </of Mysbories> <pendencies> <Dependência> <! <GrupIDID> org.mybatis </groupiD> <TarifactId> mybatis-spring </artifactId> <versão> $ {mybatis.spring.version} </versão> </dependency> <pendency> <!-contexto de mola usa spring-jdbc para conectar-se ao database-> Grupoid> <TarifactId> spring-jdbc </artifactId> <versão> $ {spring.version} </version> </dependency> <pendencency> <!-DataSource é uma instância de BasicDataSource-> </GroupId> commons-dbcp </groupid> <ArtifactId> comonS-DCP. </dependency> <pendency> <voundid> org.springframework </groupiD> <TRARFACTID> Spring-test </storkactid> <siets> $ {spring.version} </versão> </dependency> </dependências> 2. Crie arquivo Beans-Da.xml sob o ClassPath:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <eann id = "datasource"> <! value = "com.mysql.jdbc.driver" /> <propriedade name = "url" value = "jdbc: mysql: // localhost: 3306 /hbatis? caracterencoding = utf8" /> <nome da propriedade = "nome de usuário" /"root" /<weean) id = "sqlSessionFactory"> <!-sqlsessionFactory Bean-> <propriedade name = "DataSource" ref = "DataSource" /> <!-Data Source-> <Nome da propriedade "ConfigLocation" Value = "ClassPath: Configuration.xm name = "sqlSessionFactory" ref = "sqlSessionFactory" /> <Nome da propriedade = "MapperInterface" value = "com.john.hbatis.mapper.iusermapper" /> <!-Mapping Interface-> </ Beans>
3. Classe de teste:
@ContextConfiguration (Localizações = {"ClassPath: Beans-da.xml"}) classe pública SpringIntegrationTest estende abstractTestngspringContextTests {private Static Final Logger Log = LoggerFactory.getLogger (SpringIntegrationTest.class); @Resource IUSERMERMAPPER MAPER; @Test public void querytest () {usuário do usuário = mappper.getUserById (1); log.info ("nome: {}, endereço: {}", user.getName (), user.getAddress ()); }} Integração com Springmvc
Aqui, construímos a integração com o Spring3:
1. Adicione as dependências Springmvc e Freemarker ao pom.xml:
<Properts> <freemarker.version> 2.3.19 </freemarker.version> <Verlet.version> 2.5 </servlet.version> </sperties> <pendesency> <voundid> org.freemarker </frupid> <stifactId> freemarker </strofactid> <susershers> $: <Depencency> <voundiD> javax.servlet </groupiD> <TROTIFACTID> servlet-api </artifactId> <versão> $ {servlet.version} </sipers> <cope> fornecido </scope> </pendence>2. Adicione o ouvinte da Spring e o servlet da Springmvc em web.xml:
<Ilanter> <ouvinte-class> org.springframework.web.context.contextLoaderListener </ouvinte-class> <!-Ouça os eventos de contêiner, inicialize e feche o contexto do aplicativo da web e ligue para o contextCleanUplistener para limpar os recursos-> </siefer> <lister> <i ouvinte> <lirer-class> org.springframework.web.context.contextcleanUplistener </lirter-class> <!-Limpe os recursos destrutíveis relacionados à mola no servletContext quando o aplicativo da web é fechado-> </sirvier> <Vertlet> <Verlet-Name> hbatis </servlet-name> <Servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <!-<iit-param> <amam-name> contextConfigLocation </param-name> </param-value> /web-nf/hbats-ervlet.xml </param-value> Para $ {Project.name} -servlet.xml no diretório web-inf-> <adarot-on-startup> 1 </olload-on-startup> </servlet> <sirtlet-mapping> <Verlet-name> hbatis </servlet-name> <url-Pattern>*. htm </url-tattern>3. Crie um novo em Web-Inf:
Spring Configuration File ApplicationContext.xml:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: p = "http://www.springframework.org/schema xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/Context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <Contexto: Property-placeholder Location =" ClassPath: /database.Properties "/> <!-Database Configuration File-> <Bean ID =" DataSource " p: url = "$ {url}" p: userName = "$ {user_name}" p: senha = "$ {senha}" /> <!-Configuração da fonte de dados-> <bean id = "sqlSessionFactory"> <!-SQLSession Object "> <propriedades <botes! name = "configLocation" value = "classPath: configuration.xml"/> <!-mybatis Configuration File-> <!-<propriedade name = "mapperlocations" value = "classPath*: com/John/hbatis/model/*. xml"/>-> <!-Você pode configurar o arquivo de mapping. sql, etc. com o mesmo id-> </siean> <bean id = "mapperconfigurer"> <!-Digitalize o pacote especificado para obter o mapeador-> <propriedades name = "bashepackage" value = "com.john.hbatis.mapper"/> </bean> </ Beans>Database.properties sob o caminho de classe:
driverclassName = com.mysql.jdbc.driver url = jdbc: mysql: // localhost: 3306/mybatis?
Nota: Como o MapperScannerConfigurer pode fazer com que o nome de usuário busque a conta do usuário, fazendo com que a conexão do banco de dados falhe, para que seja alterada para outro valor: user_name.
Arquivo de configuração springmvc hbatis-servlet.xml:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans O http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:annotation-driven /><!-- Register RequestMappingHandlerMapping, RequestMappingHandlerAdapter e ExceptionHandleRexceptionResolver para fornecer suporte para anotações como @RequestMapping, @ExceptionHandler, etc.-> <Contexto: Package da base do componente (componente-PACKAGEMENT ANDOTAÇÃO COM.JOHN.HBATIS.CONTROLLER " /> <!-Scan the Class the Class ANSTRAÇÃO COM ANOTAÇÕES SPECPALIZADAS SOBRO-ANDO-SCANEMENT SPENSTENTAGEM NO PABERNAÇÃO SPENSTRATION: Freemarker View Processor-> <Bean id = "ViewResolverftl"> <propriedade name = "viewclass" value = "org.springframework.web.servlet.view.freemarker.freemarkerview"/> (name = "contentType" = "text/html; name = "cache" value = "false"/> <propriedade name = "viewNames"> <Array> <Value>*. ftl </value> </array> </property> <!-<names name = "sufix" value = ". id = "freemarkerConfig"> <propriedade name = "templateloaderpaths"> <lista> <valor>/web-inf/ftl/</value> <!-Caminho de carregamento de modelo-> </list> </erouse> </i bean> </ Beans>
4. MVC:
Camada de controle: userController.java
@Controller @RequestMapping ("/Artigo") Classe pública UserController {@AUTOWIRED IUSERMERMAPPER MAPPER; @RequestMapping ("/list") public String Showall (ModelMap ModelMap) {List <Trission> artigos = mappper.GeticlesByUserID (1); ModelMap.addattribute ("Artigos", Artigos); retornar "main.ftl"; }}Visualizar camada: main.ftl:
<#List Artigos como artigo> <div> $ {artigo.id}. $ {artigo.title}: $ {artigo.content} </div> </#list>5. Inicie o projeto e digite o navegador: http: // localhost: 8080/hbatis/article/list.htm para visualizar os resultados.