spring-boot框架搭建

使用springboot+mybatis搭建的框架进行开发

下面是一个小目录,目录下面有详细步骤

************************搭建框架****************************

搭建基本的架子需要做如下5件事情

1:创建一个maven项目,创建src/main/resources文件夹

2:配置pom.xml文件,引入需要的夹包

3:编写配置文件

4:编写启动类

5:写个接口测试下

***********引入mybatis测试链接数据库*******************

1:pom文件中引入夹包

2:书写接口和对应的mapper.xml文件

3:在aplication.propeities配置maaper,xml所在的路径

***************引入日志文件***************

1:引入夹包

2:引入配置文件

***********************将项目打成war包************************

1:设置pom文件

2:修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法

3:保证项目引用的jdk和pom文件中设置的一致

 4:有可能出现的问题

***********************集成swagger************************

1:pom文件里引入jar

2:书写集成类

3:写个测试controller类测试

***********************集成mybaties-plus************************

1:引入jar包

2:application.properties里配置扫描

3:书写 :实体类,service,mapper接口和mapper.xml

*******************************搭建框架***********************************

1:创建一个maven项目,创建src/main/resources文件夹

 2:配置pom.xml文件,引入需要的夹包

*****************************pom文件配置开始********************************

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

 <!-- 通过继承spring-boot-starter-parent 的方式来添加 Spring Boot 的相关支持,引入这个之后相关的引入就不需要添加version配置,
        spring boot会自动选择最合适的版本进行添加 -->
  <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>1.5.8.RELEASE</version>  
  </parent>

  <!-- 继承的spring-boot-starter-parent,默认Java 1.6 编译级别,这里可以配置新的Java编译器版本 -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.7</java.version>
  </properties>
  <dependencies>
 
    <!-- 支持 Web 应用开发,包含 Tomcat 和 spring-mvc -->
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-web</artifactId>  
    </dependency>
    
      <!-- 要构建可执行文件并将其部署到外部容器中,需要将嵌入容器依赖项标记为“提供”,
      就是打包成功的war包想要部署在一个tomcate里,就得加入这个注解,否则启动tomcate时会报错,可以参考下面网址
   https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html -->
   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope><!-- 这里代表禁用内置tomcate -->
   </dependency>

    <!-- 集成mybatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.0</version>
    </dependency>
    
    <!-- 包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
    <!-- mysql 数据库驱动 -->
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!-- 引入阿里的json工具类 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.1.26</version>
    </dependency>
    <!-- 引入关于http请求的夹包 -->
    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
         <exclusions>  
               <exclusion>  
                       <groupId>commons-logging</groupId>  
                       <artifactId>commons-logging</artifactId>    
               </exclusion>   
         </exclusions>  
    </dependency>
   
    <!-- excel表格操作需要的jar -->
    <dependency>  
        <groupId>org.apache.poi</groupId>  
        <artifactId>poi-ooxml</artifactId>  
        <version>3.9</version>  
    </dependency>
  </dependencies>
 
  <!-- Spring Boot提供了一个可选的 Maven Plugin来创建可执行的jar或是war,加上这个配置可以打war包 -->  
  <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <!-- 下面这个配置可以将自定义的lib下的jar,打包时打到war中 -->
               <!--  <configuration>
                    <webResources>
                        <resource>
                            <directory>${project.basedir}/src/main/resources/lib</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                        </resource>
                    </webResources>
                </configuration> -->
            </plugin>
        </plugins>  
    </build>  
</project>

*****************************pom文件配置结束********************************

3:编写配置文件

配置文件内容如下

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
server.port=8080

4:编写启动类

这样基本的架子就搭建起来了

试着启动项目:右键写的启动类-- Run As -- java Application -----项目就启动了,

启动成功如下图

 5:写个接口测试下

*****************************引入mybatis测试链接数据库*****************************

1:pom文件中引入夹包

2:书写接口和对应的mapper.xml文件---在aplication.propeities配置maaper,xml所在的路径

 

注释:这里mybatise的用法,mapper接口和mapper.xml的写法和对应关系,和平时写法一样

集成需要做如下几件事:

1:在application.properties里面添加xml文件所在的路径
2:在每个mapper接口上添加注解 @Mapper,这样比较麻烦,在启动类哪里添加@MapperScan({"com.moudel.*.mapper","org.moudel.*.mapper"}) ,每个mapper就不用加@Mapper了

  接口中写方法,xml中写sql语句,-----不会的可以百度下

******************************引入日志文件**********************************

1:引入夹包

2:引入配置文件

**************************配置文件内容开始***********************************

<?xml version="1.0" encoding="UTF-8"?>
<configuration >
    <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line)- %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <appender name="baselog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/bigdata.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/bigdata.log.%d.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 64 MB -->
                <maxFileSize>10 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>
                %d %p (%file:%line)- %m%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>
    <!-- 定义根目录包的路径,这个路径下的所有打印的日志都会生成到文件里 -->
    <logger name="com.test.module" level="INFO">
        <appender-ref ref="baselog" />
    </logger>
    
    <!-- 打印指定包下的sql -->
    <logger name="com.test.module" level="debug" >
         <appender-ref ref="baselog" />
    </logger>
</configuration>

 **************************配置文件内容结束***********************************

*******************************将项目打成war包*****************************

1:设置pom文件,按着下面两幅图配置,第三幅是引用自定义jar的配置

 

 

2:修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法

3:保证项目引用的jdk和pom文件中设置的一致

4:有可能出现的问题

1:如果不加入第二步那个类的话,打包可能会成功,但是启动的时候会有问题

2:pom中引入的java版本和项目中引入的不一致

3:项目中引入的是jre,而不是jdk,也有可能出问题,需要测试

 *******************************集成swagger*****************************

1:在pom文件中引入jar

    <!-- 集成swagger -->  
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <!-- swagger-ui -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

2:和启动类在同一目录下建个文件夹 config,添加一个SwaggerConfig类,如下图:

 类的内容:

package com.moudel.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("测试使用swagger")
                .select()
                //为当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.moudel.test.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    
    //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("Spring Boot 使用 Swagger2 构建RESTful API")
                //创建人
                .contact(new Contact("Bryan", "http://blog.bianxh.top/", ""))
                //版本号
                .version("1.0")
                //描述
                .description("API 描述")
                .build();
    }
}

3:controller类的写法

 

4:在浏览器中输入路径查看:http://localhost:8080/swagger-ui.html

*******************************集成mybaties-plus*****************************

集成需要注意的:

1:引入jar,集成mybatis-plus,就不用集成mybaties了,mybaties-plus会帮我们管理

2: 在controller 中可以直接使用service的一些增删改查方法,不用自己在手动写了

3:使用mybaties-plus自带的查询方法,需要注意的是表的命名有些规则,例如:test_form 命名成testform 可能就会出先问题

4:service上添加@Transactional注解,启动类上要添加上注解:@EnableTransactionManagement(proxyTargetClass = true)  //注解事务

1:引入jar包

<!-- 集成mybatis-plus,就不用集成mybaties了,mybaties-plus会帮我们管理 -->

<dependency>
  <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.1.0</version>
</dependency>

2:application.properties里配置扫描

mybatis-plus.mapper-locations=classpath:mapper/*.xml

3:书写 :实体类,service,mapper接口和mapper.xml

实体类:

 service的写法:

 mapper接口和mapper.xml,和之前集成mybaties一样,mapper接口继承BaseMapper,剩下的都一致了

 

 

 

原文地址:https://www.cnblogs.com/xueershewang/p/8901352.html