| 后一修订版 | 前一修订版 | ||
|
服务器技术:微服务:基于maven的springboot_mybatis_druid_swagger2_mybatis-generator框架环境搭建 [2018/06/14 16:47] admin 创建 |
服务器技术:微服务:基于maven的springboot_mybatis_druid_swagger2_mybatis-generator框架环境搭建 [2018/09/10 18:02] (当前版本) |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | <h4 style="">前言</h4><p style="">最近做回后台开发,重新抓起以前学过的SSM(Spring+Spring | + | <h4 style="">来自:<a href="https://blog.csdn.net/chajinglong/article/details/52795674" target="_blank">https://blog.csdn.net/chajinglong/article/details/52795674</a></h4><h4 style="">前言</h4><p style="">最近做回后台开发,重新抓起以前学过的SSM(Spring+Spring |
| MVC+Mybatis),但是发现配置实在过于复杂,好多东西配置起来麻烦,虽然最终是配置出来了,但是还是感觉开发速度跟不上,本来打算切换到jfianl,但是后来发现需要用的几个框架不支持jfianl,如Swagger2(根据代码中的注解生成接口文档和测试页面,非常的方便);同时我也不愿意放弃SpringMVC强大的验证参数模块,jfianl中好像只能手动验证(当然我对jfianl只处于简单的开发,并不是特别熟),而SpringMVC中,直接就能通过注解来确定哪些参数是必须的,哪些不是必须的,这对于写接口的人来说,方便了很多,所以决定还是使用Spring家族的东西,下面先一一介绍下本文的主角们</p><h5 style=""><a target="_blank" href="http://projects.spring.io/spring-boot/" style="color:rgb(74,74,74); background:transparent">Spring boot</a></h5><p style="">spring-boot是由<a target="_blank" href="https://pivotal.io/" style="color:rgb(74,74,74); background:transparent">Pivotal</a>团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application | MVC+Mybatis),但是发现配置实在过于复杂,好多东西配置起来麻烦,虽然最终是配置出来了,但是还是感觉开发速度跟不上,本来打算切换到jfianl,但是后来发现需要用的几个框架不支持jfianl,如Swagger2(根据代码中的注解生成接口文档和测试页面,非常的方便);同时我也不愿意放弃SpringMVC强大的验证参数模块,jfianl中好像只能手动验证(当然我对jfianl只处于简单的开发,并不是特别熟),而SpringMVC中,直接就能通过注解来确定哪些参数是必须的,哪些不是必须的,这对于写接口的人来说,方便了很多,所以决定还是使用Spring家族的东西,下面先一一介绍下本文的主角们</p><h5 style=""><a target="_blank" href="http://projects.spring.io/spring-boot/" style="color:rgb(74,74,74); background:transparent">Spring boot</a></h5><p style="">spring-boot是由<a target="_blank" href="https://pivotal.io/" style="color:rgb(74,74,74); background:transparent">Pivotal</a>团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application | ||
| development)成为领导者</p><p style="">多年以来,<a target="_blank" href="http://spring.io/" style="color:rgb(74,74,74); background:transparent">Spring IO</a>平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理。在2013年的<a target="_blank" href="https://www.youtube.com/watch?v=jplkJIHPGos" style="color:rgb(74,74,74); background:transparent">SpringOne | development)成为领导者</p><p style="">多年以来,<a target="_blank" href="http://spring.io/" style="color:rgb(74,74,74); background:transparent">Spring IO</a>平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理。在2013年的<a target="_blank" href="https://www.youtube.com/watch?v=jplkJIHPGos" style="color:rgb(74,74,74); background:transparent">SpringOne | ||
| 行 56: | 行 56: | ||
|             <artifactId> mysql-connector-java</artifactId> |             <artifactId> mysql-connector-java</artifactId> | ||
|             <version> 5.0.5</version> |             <version> 5.0.5</version> | ||
| - |         </dependency></pre><p style="">其中spring-boot-devtools不是必须,只是如果你想在运行的时候,修改了代码能自动更新,而不用手动重启,就需要加上</p><h5 style="">三、添加Applcation类</h5><p style="">这个就是程序的入口类了,代码如下</p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComponentScan;import org.springframework.boot.web.support.SpringBootServletInitializer;/** | + |         </dependency></pre><p style="">其中spring-boot-devtools不是必须,只是如果你想在运行的时候,修改了代码能自动更新,而不用手动重启,就需要加上</p><h5 style="">三、添加Applcation类</h5><p style="">这个就是程序的入口类了,代码如下</p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot; |
| + | import org.mybatis.spring.annotation.MapperScan; | ||
| + | import org.springframework.boot.SpringApplication; | ||
| + | import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
| + | import org.springframework.boot.web.servlet.ServletComponentScan; | ||
| + | import org.springframework.boot.web.support.SpringBootServletInitializer; | ||
| + | /** | ||
| * | * | ||
| * | * | ||
| 行 92: | 行 98: | ||
| - | debug: true</pre><p style="">相信这个文件很容易看懂,首先server:下面的port:80这个是定义了运行的端口,之前说过spring boot内置了tomcat服务器,所以如果要使用内置的tomcat并且不想用8080端口,就需要在这里配置</p><p style="">下面就是datasource的配置,这样不写进代码有个好处,那就是如果是给客户用的程序,可以很方便的修改数据库配置,而不用重新编译,当然如果你是打包jar我估计是要重新编译的,如果是war,那么就可以解压出来直接修改application.yml而不用重新编译了</p><p style="">而debug:true就是说明当时是调试状态,这样就会输出很多log</p><h5 style="">五、创建Druid数据源配置类</h5><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config;import java.sql.SQLException;import javax.sql.DataSource;import org.springframework.boot.bind.RelaxedPropertyResolver;import org.springframework.context.EnvironmentAware;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.env.Environment;import org.springframework.transaction.annotation.EnableTransactionManagement;import com.alibaba.druid.pool.DruidDataSource;@Configuration@EnableTransactionManagement/** | + | debug: true</pre><p style="">相信这个文件很容易看懂,首先server:下面的port:80这个是定义了运行的端口,之前说过spring boot内置了tomcat服务器,所以如果要使用内置的tomcat并且不想用8080端口,就需要在这里配置</p><p style="">下面就是datasource的配置,这样不写进代码有个好处,那就是如果是给客户用的程序,可以很方便的修改数据库配置,而不用重新编译,当然如果你是打包jar我估计是要重新编译的,如果是war,那么就可以解压出来直接修改application.yml而不用重新编译了</p><p style="">而debug:true就是说明当时是调试状态,这样就会输出很多log</p><h5 style="">五、创建Druid数据源配置类</h5><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config;import java.sql.SQLException; |
| + | import javax.sql.DataSource;import org.springframework.boot.bind.RelaxedPropertyResolver; | ||
| + | import org.springframework.context.EnvironmentAware; | ||
| + | import org.springframework.context.annotation.Bean; | ||
| + | import org.springframework.context.annotation.Configuration; | ||
| + | import org.springframework.core.env.Environment; | ||
| + | import org.springframework.transaction.annotation.EnableTransactionManagement; | ||
| + | import com.alibaba.druid.pool.DruidDataSource;@Configuration@EnableTransactionManagement | ||
| + | /** | ||
|  * Druid的DataResource配置类 |  * Druid的DataResource配置类 | ||
|  * @author Raye |  * @author Raye | ||
| 行 123: | 行 137: | ||
|         } |         } | ||
|         return datasource; |         return datasource; | ||
| - |     }}</pre><p style="">主要是创建一个druid的DruidDataSource 返回并告诉spring boot这是一个bean</p><h5 style="">六、创建Druid的监控servlet和filter</h5><p style=""><span style="font-weight:700">创建监控Servlet</span></p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;import com.alibaba.druid.support.http.StatViewServlet;/** | + |     }}</pre><p style="">主要是创建一个druid的DruidDataSource 返回并告诉spring boot这是一个bean</p><h5 style="">六、创建Druid的监控servlet和filter</h5><p style=""><span style="font-weight:700">创建监控Servlet</span></p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config; |
| + | import javax.servlet.annotation.WebInitParam; | ||
| + | import javax.servlet.annotation.WebServlet; | ||
| + | import com.alibaba.druid.support.http.StatViewServlet; | ||
| + | /** | ||
|  * Druid的Servlet |  * Druid的Servlet | ||
|  * @author Raye |  * @author Raye | ||
| 行 132: | 行 150: | ||
|         @WebInitParam(name="loginUsername",value="Raye"),// 用户名 |         @WebInitParam(name="loginUsername",value="Raye"),// 用户名 | ||
|         @WebInitParam(name="loginPassword",value="123456"),// 密码 |         @WebInitParam(name="loginPassword",value="123456"),// 密码 | ||
| - |         @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能})public class DruidStatViewServlet extends StatViewServlet {}</pre><p style=""><span style="font-weight:700">@WebServlet</span>表明这是一个Servlet,和之前Application中的@ServletComponentScan相对应使用 <span style="font-weight:700">创建filter</span></p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;import com.alibaba.druid.support.http.WebStatFilter;@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",initParams={ | + |         @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能}) |
| + |         public class DruidStatViewServlet extends StatViewServlet {}</pre><p style=""><span style="font-weight:700">@WebServlet</span>表明这是一个Servlet,和之前Application中的@ServletComponentScan相对应使用 <span style="font-weight:700">创建filter</span></p><p>Java</p><pre class=" language-java" style="font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; font-size:0.9em; margin-top:0.5em; margin-bottom:0.5em; border:1px solid rgb(227,237,243); width:1178px; padding:1em; overflow:auto; color:rgb(248,248,242); word-spacing:normal; word-break:normal; word-wrap:normal; line-height:1.5; background:rgb(39,40,34)">package wang.raye.springboot.config;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;import com.alibaba.druid.support.http.WebStatFilter;@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",initParams={ | ||
|     @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源})/** |     @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源})/** | ||
|  * Druid拦截器,用于查看Druid监控 * @author Raye * @since 2016年10月7日14:59:27 |  * Druid拦截器,用于查看Druid监控 * @author Raye * @since 2016年10月7日14:59:27 | ||