zoukankan      html  css  js  c++  java
  • SpringBoot 模块项目流程

    SpringBoot 模块项目流程

    1.搭建主项目 Maven Project

    ​ 搭建简单项目

    主项目是pom

    2.搭建子项目

    ​ 子项目用jar 可以在CMD直接运行jar包 (但前提是必须配置JRE_HOME环境变量)

    java -jar xxxx.jar(包) (关闭cmd窗口就直接关闭程序)
    

    重复上边第二步的步骤把其他模块也建立好 例:公共模块(common)、权限模块(auth)、启动模块(web)。

    3.引入Jar包

    ​ 修改pom主项目内的模块是通过pomne的modules聚合在一起的。

    ​ 同时把项目需要的Jar包黏贴进pom内

    <parent>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-parent</artifactId>
    	<version>2.4.1</version>
    	<relativePath/> <!-- lookup parent from repository -->
    </parent>
    	<properties>
    		<java.version>1.8</java.version>
    	</properties>
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    	</dependency>
    
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-devtools</artifactId>
    		<scope>runtime</scope>
    		<optional>true</optional>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-test</artifactId>
    		<scope>test</scope>
    	</dependency>
    
         <!-- alibaba的druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
    
       <!-- alibaba的fastJson处理 -->
        <dependency>
    		<groupId>com.alibaba</groupId>
    		<artifactId>fastjson</artifactId>
    		<version>1.2.9</version>
       </dependency>
    
       <!-- Mybatis与SpringBoot的关联Jar包 -->
       <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
    
        <!-- Mysql的驱动jar包 -->
        <dependency>
    		<groupId>mysql</groupId>
    		<artifactId>mysql-connector-java</artifactId>
    		<version>5.1.49</version>
    	</dependency>
    </dependencies>
    

    ​ 配置需要有关联的模块的pom.xml加入:

    <dependencies>
    		<dependency>
    			<groupId>com.hp</groupId>
    			<artifactId>需要关联的模块名</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    		</dependency>
    </dependencies>
    

    ​ 同时记得配置启动模块:

    <build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    </build>
    

    ​ 这里引入了spring-boot-maven-plugin,打包时会去扫描项目main方法入口,也就是说引入该配置,你就必须在项目src/main/java/下创建一个spring-boot启动类:

    package com.hp.client;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication(scanBasePackages="com") //扫描路径
    public class Application {
    	
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    }
    

    更新、重构、Clean 主项目

    ​ 1.更新

    ​ 2.Clean 清缓存

    ​ 3.重构

    4.配置Spring Boot 的核心配置文件

    核心配置格式有两种(配置在src/main/resources路径下)

    (1).properties 文件(默认采用该文件)

    (2).yml 文件

    ​ 配置文件内容:

    #Tomcat配置 端口号
    server:
       port: 80
       session-timeout: 30
       tomcat.max-threads: 0
       tomcat.uri-encoding: UTF-8
       
    #数据库连接文件
    spring:
       datasource:
          url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
          type: com.alibaba.druid.pool.DruidDataSource
          connectionProperties: druid.stat.mergeSql=true
          filters : stat,wall
          
    #静态文件 可以配置多个路径,多个路径用逗号隔开
    resources:
       static-locations: classpath:/static/,classpath:/views/
          
    #Mybatis配置
    mybatis:
       config-location: classpath:config/mybatis-config.xml
    
    5.写处理类,例如Controller Service Dao等并运行项目测试
    package com.hp.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class Usercontroller {
    	
    	@RequestMapping("insert")
    	@ResponseBody
    	public String insert() {
    		return "Hello";
    	}
    }
    

    ​ 在启动类Application.java中运行程序

    ​ 运行没有报错,去浏览器测试响应

    6.配置德鲁伊监控

    ​ 在静态资源配置文件夹resources/config下配置druid.properties文件内容如下:

    # 这4个参数key里不带druid也可以,即可以还用上面的这个4个参数
    
    spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    spring.datasource.druid.username=root
    spring.datasource.druid.password=root
    spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
    
    # 初始化时建立物理连接的个数
    
    spring.datasource.druid.initial-size=5
    
    # 最大连接池数量
    
    spring.datasource.druid.max-active=30
    
    # 最小连接池数量
    
    spring.datasource.druid.min-idle=5
    
    # 获取连接时最大等待时间,单位毫秒
    
    spring.datasource.druid.max-wait=60000
    
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    
    spring.datasource.druid.time-between-eviction-runs-millis=60000
    
    # 连接保持空闲而不被驱逐的最小时间
    
    spring.datasource.druid.min-evictable-idle-time-millis=300000
    
    # 用来检测连接是否有效的sql,要求是一个查询语句
    
    spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
    
    # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
    
    spring.datasource.druid.test-while-idle=true
    
    # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    
    spring.datasource.druid.test-on-borrow=false
    
    # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    
    spring.datasource.druid.test-on-return=false
    
    # 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
    
    spring.datasource.druid.pool-prepared-statements=false
    
    # 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
    
    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50
    
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计
    
    spring.datasource.druid.filters=stat,wall
    
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    
    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    
    # 合并多个DruidDataSource的监控数据
    
    spring.datasource.druid.use-global-data-source-stat=true 
    

    在启动模块中配置默认路径

    配置后在浏览器输入默认路径http://127.0.0.1/druid/login.html

  • 相关阅读:
    STL堆算法性能分析与优化方法(GCC4.4.2 stl_heap.h源代码分析与改进方案)
    POJ 1631 Bridging Singnals
    一个用于读unicode文本的迭代器(iterator)
    常用文本压缩算法及实现(To be finshed!)
    volatile语义及线程安全singleton模式探讨
    C++实现的huffman与canonical huffman的压缩解压缩系统,支持基于单词的压缩解压缩
    linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
    多线程统计多个文件的单词数目C++0x多线程使用示例
    python嵌入C++ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
    boost.python入门教程 python 嵌入c++
  • 原文地址:https://www.cnblogs.com/A-Nan-q/p/14337752.html
Copyright © 2011-2022 走看看