introduzir:
No artigo anterior, introduzi a construção do projeto Multi-Module SSM. Durante o processo de construção, o Spring integra Springmvc e Mybatis, haverá muitas coisas que precisamos configurar. Isso não apenas perde tempo, mas também faz com que erros mais propensos a erros. Devido aos problemas causados, a equipe central forneceu uma nova estrutura, que usa uma maneira específica de configurar, para que os desenvolvedores não precisem mais definir configurações de caldeira. Dessa forma, a Spring Boot está comprometida em se tornar um líder no desenvolvimento rápido de aplicativos.
Características:
1. Crie um aplicativo de primavera independente
2. Incorporar o tomcat, não há necessidade de implantar arquivos de guerra
3. Simplifique a configuração do Maven
4. Configure automaticamente a mola
5. Forneça recursos prontos para produção, como métricas, verificações de saúde e configurações externas
6. Não há absolutamente nenhuma geração de código e nenhum requisito para a configuração XML
(A maior parte do conteúdo acima é extraída da Enciclopédia Baidu)
Ok, isso é tudo para a explicação do trampolim. Se você quiser saber mais em detalhes, pode usar o Baidu.
Eu recomendo que você construa um projeto de trampolim usando idéias ou STs (um editor desenvolvido pela Spring Tool Suite Spring Company). Agora estou usando idéias, então, em seguida, uso idéias para construir o projeto.
1. Crie um projeto
Depois de preencher o grupo e o Atrifact, clique em Avançar. Aqui eu escolhi o jar. Como o documento oficial recomenda a embalagem no JAR, não explicarei muito aqui.
Verifique a web aqui
Aqui, verifique MySQL, JDBC e Mybatis para clicar em Avançar
Insira o nome do projeto e o caminho do projeto aqui e clique em terminar
Esta é a estrutura do projeto após a conclusão da nova construção
2. Adicione Pom.xml Dependência
Como o Springboot não recomenda o uso do JSP como páginas, se você deseja usá -lo, você deve adicionar dependências JSP.
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.chaoqi</groupId> <TrAtifactId> springboot_demo2 </stifactId> <versão> 0.0.1-snapshot </version> <bacaging> jar </acheging> <name> springboot_demo2 </name> <crection> Projeto Demo para a inicialização da primavera </cription> <voundid> org.springframwork.Boot </grouping> <urgid> org.sPringFramwork.Boot </groupd> <rouping> <voundid> org.sPringFramwork.Boot </rulomid> <rouping> org.sPringFramwilt.BOOT </Grouping> <roux> Org.sPringFramwork <TarfactId> Spring-Boot-Starter-Parent </ArtifactId> <versão> 2.0.0.release </sipers> <RelityPath/> </parent> </project.build.sourceEncoding> <Project.Reporting.OutputEncoding> utf-8 </project.reporting.outputencoding> <nava.version> 1.8 </java.version> </sperties> </dependências> <spendency> <voundid> org.springframework.BOOT </Groupid> <strofactId> Spring- Spring- Spring- <Depencency> <PuerpId> org.springframework.boot </groupId> <TRATIFACTID> Spring-boot-starter-web </stutifactId> </dependency> <pendence> <rutifactId> org.mybatis.spring.boot </groupid> <Artifactid> mybatis-spring-Bot-BOT.Bring.Boot </Groupid> <Artifactid> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <cope> test </cope> </dependency> <!-adicione dependências jsp-> <pendence> <puperid> org.springframework.boot </frugiD> <stifactId> spring-boot-starter-tomcat </artifactid> </dependência> <Pepicy> <vroupId> ourgache.tomcom </ArtifactId> Tomcat-embed-jasper </starifactId> </dependency> </dependências> <fuild> <flugins> <flugin> <plugid> org.springframework.boot </flupiD> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin> </plugin>
3. Springboot integra Springmvc
Porque ao criar o projeto, escolhemos Mybatis e JDBC, então temos que configurá -los aqui.
Editar Application.Properties
# The default prefix directory of page spring.mvc.view.prefix=/WEB-INF/jsp/# The default suffix of response page spring.mvc.view.suffix=.jsp#Development configuration spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc: mysql: // localhost: 3306/teste? useunicode = true & caracteryncoding = utf-8spring.datasource.username = rootspring.dataSource.password = 123456# mybatis interface Local mybatis.mapper-locações: ClassPath: Mapper/*. Xmlmybatis.type-aliases-package: com.chaoqi.springboot_demo2.domain
Se você estiver acostumado a usar o Application.yml, ele também pode ser usado, mas ao usar o Application.yml, você deve limpá -lo pela primeira vez, caso contrário, um erro será relatado.
Servidor: Porta: 8080Spring: MVC: View: Prefixo:/web-inf/jsp/sufixo: .jsp DataSource: URL: JDBC: mysql: // localhost: 3306/teste? CaracterenCoding = utf-8 & useunicode = trueSessl = Falsename: root: 123344: com.mysql.jdbc.drivermybatis: Mapper-Locations: Classpath: mapeando/*. Xml tipo-aliases-package: com.chaoqi.springboot_demo2.doman.
Após editar o Application.properties, crie o diretório WebApp no SRC/Mian. A estrutura é a seguinte
Crie um novo indexController
pacote com.chaoqi.springboot_test.web; importar org.springframework.stereotype.controller; importar org.springframework.web.bind.annotation.requestMapping; @Controlllerpublic Class IndexController {private final string indexe @RequestMapping ("/show") public string getIndex () {return index; }}Execute a função principal
Visite a página, bem -sucedida
4. Springboot integra Mybatis
Crie uma tabela de banco de dados
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Music_name` Varchar (100) Não NULL Comentário 'Título da música', chave primária (` id`)) mecan ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------ '3,0m', 'água esquecida'); inserir em `music_info` valores ('3', 'porco diandiano', '5,0m', 'porquinho que pode escrever programas');Crie um pojo
pacote com.chaoqi.springboot_test.dao.Domain; classe pública Musicinfo {// Primária ID da chave privada ID inteiro privado; // Nome do cantor Singername Private String; // Tamanho da música Private String musicsize; // Nome da música Private String MusicName; / ** * Obtenha a chave primária id music_info.id * * @return ID da chave primária */ public integer getId () {return id; } / ** * Defina a chave primária id music_info.id * * @param ID ID da chave primária * / public void SetId (ID do número inteiro) {this.id = id; } / ** * Obtenha o nome do cantor music_info.singer_name * * @return Singer Name * / public string getingername () {return cantername; } / ** * Definir nome Singer Music_info.singer_name * * @param Singername Singername * / public void Setsingername (String Singername) {this.singername = Singername == NULL? NULL: Singername.Trim (); } / ** * Obtenha o tamanho da música music_info.music_size * * @return Tamanho da música * / public String getMusicsize () {return musicsize; } / ** * Defina o tamanho da música music_info.music_size * * @param musicsize tamanho da música * / public void setMusicsize (String musicsize) {this.musicsize = musicsize == null? null: musicsize.trim (); } / ** * Obtenha o nome da música music_info.music_name * * @return nome da música * / public String getMusicName () {return musicName; } / ** * Defina o nome da música music_info.music_name * * @param musicName Song Name * / public void setMusicName (String MusicName) {this.musicName = musicName == null? null: musicName.Trim (); } @Override public string tostring () {return }}Crie mappper.xml
<? xml versão = "1.0" coding = "utf-8"?> <! namespace = "com.chaoqi.springboot_test.dao.mapper.musicInfomapper"> <resultMap id = "baseresultmap" type = "com.chaoqi.springboot_test.dao.dom.musicinfo"> <DiGring = "idiota" idiota "idiota"> "idiScinfo" <DiGBOOT_Test.dao.domp = iDiPernGoot = "idiota" idiSPT = "> <DOOTBOOT_Test.dao.Dom.Musicinfo"> <DiMer = " Column = "Singer_Name" JDBCTYPE = "varchar" propriedade = "Singername" /> <resultado column = "music_size" jdbctype = "varchar" property = "musicsize" /> <resultado column = "music_name" jdbctype = "varchar")
Crie um mapeador
pacote com.chaoqi.springboot_test.dao.mapper; importar com.chaoqi.springboot_test.dao.domain.musicinfo; import org.apache.ibatis.annoTations.Resultmap; import.apache.ibatis.annotações @ResultMap ("Baseresultmap") @select ("Select * da Music_info") Lista <SicionInfo> Selectall (Musicinfo MusicInfo);}Interface de serviço
pacote com.chaoqi.springboot_test.service; importar com.chaoqi.springboot_test.dao.domain.musicinfo; importar java.util.list; interface pública Musicinfoservice {public list <musicinfo> getMusicinfo (musicinfo musicinfo Musicinfo (música de música)Classe de implementação de serviço
pacote com.chaoqi.springboot_test.service.impl; importar com.chaoqi.springboot_test.dao.domain.musicinfo; importar com.chaoqi.springboot_test.dao.mapper.musicinfomapper; com.chaoqi.springboot_test.service.musicInfoservice; importar org.springframework.beanS.Factory.annotation.autowired; import org.springframework.teretype.service; importuM.ItilEMemMesmesmesmesmesfrorTwork.StereType.service; MusicInfomapper privado MusicInfomapper; @Override Public List <CusicInfo> getMusicInfo (Musicinfo Musicinfo) {list <sicionInfo> musicinfos = musicInfomapper.Selectall (null); retornar musicinfos; }}A estrutura após a criação é a seguinte
Editar indexController
package com.chaoqi.springboot_test.web;import com.chaoqi.springboot_test.dao.domain.MusicInfo;import com.chaoqi.springboot_test.service.MusicInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.controller; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.ResponseBody; import java.Util.List; @ControllerPublic.Sponsonsonstrod; @Autowired Private MusicinFoservice MusicinFoservice; @RequestMapping ("/show") public string getIndex () {return index; } @RequestMapping ("/music") @ResponseBody Public List <CusicInfo> getMusicInfo (musicinfo musicinfo) {list <susicinfo> musicinfolist = musicinfoservice.getMusicInfo (null); Retornar Musicinfolist; }}Anote a classe SpringboottestApplication @mapperscan ("com.chaoqi.springboot_test.dao.mapper")
pacote com.chaoqi.springboot_test; importar org.mybatis.spring.annotation.mapperscan; importar org.springframework.boot.springApplication; importação org.springframework.boot.autoconfigure.SpringBootApplication; org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.restcontroller;@shingbootapplication@mapperscan ("com.chaoqi.springboot_test. args) {springapplication.run (springboottestappatication.class, args); }}Execute o projeto com sucesso, a integração Springboot+Springmvc+Mybatis é concluída (endereço de download do código -fonte)
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.