• 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,剩下的都一致了

     

     

     

  • 相关阅读:
    Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
    Android-Launcher开发之ShortCut(1)
    墨菲定律、二八法则、马太效应、手表定理、“不值得”定律、彼得原理、零和游戏、华盛顿合作规律、酒与污水定律、水桶定律、蘑菇管理原理、钱的问题、奥卡姆剃刀等13条是左右人生的金科玉律
    Java利用jcifs集成AD域用户认证
    Python_生成測试数据
    怎样设计接口?
    一道关于CSS选择器优先级的题
    hibernate的orphanRemoval
    js实现表格配对小游戏
    amazeui中内置的web组件有哪些且如何用
  • 原文地址:https://www.cnblogs.com/xueershewang/p/8901352.html
Copyright © 2020-2023  润新知