集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)

1 Maven

Maven是最流行的Java项目构建工具

为什么需要使用Maven?

在JavaWeb开发中Maven能够帮我们自动管理jar包、自动构建项目。

1.1 安装Maven

  1. 官网下载:Maven – Welcome to Apache Maven

  2. 安装:解压压缩包即可。

  3. Maven核心配置文件setting.xml集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第1张图片

 

1.2 配置环境变量

MAVEN_HOME 配置Maven的目录集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第2张图片

在系统的Path中配置 %MAVEN_HOME%\bin

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第3张图片

 

打开DOS窗口输入mvn -v命令,查看版本。当出现下面信息就说明Maven安装成功了

 1.3 配置镜像

  
    
   
      alimaven
      central
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
    
  

1.4 配置本地仓库

本地仓库用于存放从服务器下载的jar包  

D:/JavaTools/Maven/apache-maven-3.6.1/repository

1.5 Maven集成IDEA

idea中有一个自带的maven。 我们要让idea使用自己安装的maven。

  1. 选择File-->Settings-->Build,Execution,Deployment-->Maven集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第4张图片

    2.选择File-->Settings-->Build,Execution,Deployment-->Maven-->Runner

-DarchetypeCatalog=internal

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第5张图片

 

3.选择File---> Other Settings---> Settings for New Projects

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第6张图片集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第7张图片

 窗前其他的工程Maven配置也跟之前一样

2第一个SpringBoot程序

目标:向web浏览器输出HelloSpringBoot

步骤如下:

2.1创建父工程

 集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第8张图片

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第9张图片 

2.2定义父工程的POM文件



    4.0.0
​
    com.shouyi
    shouyixueyuan-springboot-water
    1.0-SNAPSHOT
    
        shouyixueyuan-springboot-water-demo-01
    
   
    pom
    
    
        UTF-8
        1.8
        1.8
        
        2.3.0.RELEASE
​
        5.1.47
        1.1.23
        3.3.2
​
        1.18.20
        1.7.26
        1.7.26
        1.8.0
        1.2.17
        5.1.0
        2.9.2
    
    
    
        
            
            
                org.springframework.boot
                spring-boot-dependencies
                ${springboot.version}
                
                import
                
                pom
            
​
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
            
                com.baomidou
                mybatis-plus-boot-starter
                ${mybatisplus.version}
            
            
            
                com.alibaba
                druid-spring-boot-starter
                ${druid.version}
            
            
            
                cn.hutool
                hutool-all
                ${hutool.version}
            
            
            
                org.projectlombok
                lombok
                provided
                ${lombok.version}
                
                true
            
​
            
            
                io.springfox
                springfox-swagger2
                ${swagger.version}
            
            
            
                io.springfox
                springfox-swagger-ui
                ${swagger.version}
            
            
            
                org.junit.platform
                junit-platform-launcher
                ${junit.version}
                test
            
​
            
                org.junit.platform
                junit-platform-commons
                ${junit.version}
                test
            
​
            
            
                log4j
                log4j
                ${log4j.version}
            
​
            
                org.slf4j
                jcl-over-slf4j
                ${jcl-over.version}
            
​
            
                org.slf4j
                slf4j-log4j12
                ${slf4j.version}
            
        
    
​
    
        
            
                src/main/java
                
                
                    **/*.properties
                    **/*.xml
                
                false
            
            
                
                ${project.basedir}/src/main/resources
                
                    **/*.java
                
            
        
        
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

2.3 创建子模块

选中工程,右键点击New-->Module集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第10张图片

选择Maven,点击Next集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第11张图片集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第12张图片

定义模块名称,点击Finish集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第13张图片

2.4 定义子模块的POM文件



    
        minzu-springboot
        com.minzu
        1.0-SNAPSHOT
    
    4.0.0
​
    minzu-springboot-demo-01
    
        
        
            org.springframework.boot
            spring-boot-starter-web
            
            
                
                    ch.qos.logback
                    *
                
                
                    org.apache.logging.log4j
                    *
                
            
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
        
            org.springframework.boot
            spring-boot-starter-log4j
            1.3.8.RELEASE
        
    
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
        
        
            mysql
            mysql-connector-java
        
        
        
            org.projectlombok
            lombok
        
        
        
            io.springfox
            springfox-swagger2
        
        
            io.springfox
            springfox-swagger-ui
        
​
        
        
            cn.hutool
            hutool-all
        
        
        
            log4j
            log4j
        
        
            org.slf4j
            jcl-over-slf4j
        
        
            org.junit.platform
            junit-platform-launcher
        
        
            org.junit.platform
            junit-platform-commons
        
    

2.5编写YML配置文件

application.yml

.yml是一种特殊的配置文件,也是Springboot的配置文件

2.5.1 YML是什么

YAML (Ain't a Markup Language)YAML不是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。

2.5.2 YML优点

  1. YAML易于人们阅读。

  2. YAML数据在编程语言之间是可移植的。

  3. YAML具有表现力和可扩展性。

  4. YAML易于实现和使用。

2.5.3 YML语法

  1. k: v 表示键值对关系,冒号后面必须有一个空格

  2. 大小写敏感

  3. 缩进时不允许使用Tab键,只允许使用空格。

# 微服务应用程序端口号
server:
  port: 8081

2.6 编写日志配置文件

在resources目录下定义日志配置文件log4j.properties,配置项如下:

# 将日志级别为DEBUG的日志信息输出到file(文件)和console(控制台)这两个目的地
log4j.rootLogger=INFO, file, console
# 文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/System.log    
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n

#控制台输出的相关设置
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS} %5p %c{1}:%L - %m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

2.7编写控制器Controller

/**
 * TODO
 *
 * @author caojie
 * @version 1.0
  * 被@RestController注解修饰的类在程序启动的时候会注入到SpringBoot容器中,表示这个类充当Controller(控制器),它
 * 里面定义的方法全部以Json字符串的形式返回给浏览器
 */
@RestController
public class HelloController {
​
    /**
     * @GetMapping将HTTP GET请求映射到特定的方法。例如:将浏览器的/hello请求映射到hello()方法
     * @return
     */
    @GetMapping("/hello")
    public String hello() {
        return "Hello SpringBoot";
    }
}
2.8编写SpringBoot启动类
package com.wenhua.springboot;
​
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * TODO
 * SpringBoot入口
 * @author caojie
 * @version 1.0
 被@SpringBootApplication注解修饰的类是SpringBoot的启动类
 */
@SpringBootApplication
public class HelloSpringBoot {
    public static void main(String[] args) {
        SpringApplication.run(HelloSpringBoot.class,args);
    }
}

2.9运行程序

http://localhost:8081/hello

2.10小结

父工程:1建立工程 2 编写父工程的POM 3删除父工程的src目录

子模块:1 建立子模块 2 编写POM 3 yml配置文件 4定义日志文件 5编写Controller控制器类 6 编写SpringBoot入口类

核心:

 @SpringBootApplication @RestController

3 使用SpringBoot在浏览器输出客户信息

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第14张图片

 3.1创建子模块(Module)

3.2定义子模块的POM文件



    
        shouyixueyuan-springboot-water
        com.shouyi
        1.0-SNAPSHOT
    
    4.0.0
​
    shouyixueyuan-springboot-water-demo-01
​
    
        
            org.springframework.boot
            spring-boot-starter-web
            
            
                
                    ch.qos.logback
                    *
                
                
                    org.apache.logging.log4j
                    *
                
            
        
​
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
​
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
        
            org.springframework.boot
            spring-boot-starter-log4j
            1.3.8.RELEASE
        
​
         
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
​
        
        
            mysql
            mysql-connector-java
        
​
        
        
            com.baomidou
            mybatis-plus-boot-starter
        
​
        
        
            com.alibaba
            druid-spring-boot-starter
        
        
        
            org.projectlombok
            lombok
        
        
        
            io.springfox
            springfox-swagger2
        
        
            io.springfox
            springfox-swagger-ui
        
​
        
        
            cn.hutool
            hutool-all
        
        
        
            log4j
            log4j
        
​
        
            org.slf4j
            jcl-over-slf4j
        
        
        
            org.junit.platform
            junit-platform-launcher
        
        
            org.junit.platform
            junit-platform-commons
        
    

3.3编写YML配置文件

application.yml

server:
  port: 8081
​
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/shouyi?useUnicode=true&characterEncoding=UTF8&useSSL=false
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    druid:
      min-idle: 5
      max-active: 10
      max-wait: 5000
    type: com.alibaba.druid.pool.DruidDataSource
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 全局策略配置,全部都是用auto策略(数据库ID自增长)
  global-config:
    db-config:
      id-type: auto
​
# 配置日志级别
logging:
  com.shouyi: info

3.4 编写日志配置文件

# 将日志级别为DEBUG的日志信息输出到file(文件)和console(控制台)这两个目的地
log4j.rootLogger=INFO, file, console
# 文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/caojie.log    
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
​
#控制台输出的相关设置
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS} %5p %c{1}:%L - %m%n
​
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

3.5定义相关的package

entities包放置实体类

mapper包放置Mapper映射文件

service包放置业务逻辑接口和实现类

controller包放置Controller控制器

集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第15张图片

 3.6定义SpringBoot启动类

package com.wenhua.springboot;
​
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
​
/**
 * TODO
 * @author caojie
 * @version 1.0
  @MapperScan扫描指定包下面的所有接口,在编译之后都会生成对应的实现类
 */
@SpringBootApplication
@MapperScan("com.wenhua.springboot.mapper")
public class CustomerSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(CustomerSpringBootApplication.class,args);
    }
}
​

3.7 在IDEA里面安装Lombok插件

File--->Plugins集成送水管理系统项目:SpringBoot+Thymeleaf+mybatisPlus+bootstrap(三)_第16张图片

3.8定义Customer实体类

package com.wenhua.entities;
​
import lombok.AllArgsConstructor;
import lombok.Data;
​
/**
 * TODO
 * @author caojie
 * @version 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Customer {
​
    private Integer cid;
​
    private String custName;
​
    private String custMobile;
​
    private String custAddress;
​
    private Integer custTicket;
}
3.9定义Mapper接口

封装了数据库访问的所有操作(CRUD 增删改查)。Mapper用来在数据库表和Java实体类的属性之间做映射

package com.wenhua.springboot.mapper;
​
import com.wenhua.springboot.entities.Customer;
​
import java.util.List;
​
/**
 * TODO:Mapper用于在数据库表和Java实体类之间做映射,封装了数据库所有的增删改查操作,用于跟数据库交互
 * @author caojie
 * @version 1.0
 */
@Repository
public interface CustomerMapper extends BaseMapper {
    List listCustomer();
}

3.10编写业务逻辑接口Service

package com.shouyi.service;
​
import com.shouyi.pojo.Customer;
​
import java.util.List;
/**
 * TODO
 * @author caojie
 * @version 1.0
 * @date 2021/10/09 13:10
 */
public interface CustomerService {
    String hello();
​
    List listCustomer();
}
​

3.11编写Service实现类

package com.shouyi.service;
​
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.shouyi.mapper.CustomerMapper;
import com.shouyi.pojo.Customer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
​
import java.util.List;
​
/**
 * TODO
 * @author caojie
 * @version 1.0
 * @date 2021/10/19 13:10
 */
@Service
public class CustomerServiceImpl implements CustomerService {
​
    @Autowired
    private CustomerMapper customerMapper;
​
    @Override
    public List listCustomer() {
        return customerMapper.selectList(null);
    }
}
3.12编写Controller控制器
package com.wenhua.springboot.controller;
​
import com.wenhua.springboot.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
​
/**
 * TODO: 当客户在浏览器输入http://localhost:8097/listCustomer,请求会派发给CustomerController的listCustomer()方法处理该请求(向浏览器输出所有客户信息)
 * @author caojie
 * @version 1.0
 * @date 2021/6/21 21:48
 */
@RestController
public class CustomerController {
    /**
     * @Autowired根据类型自动装配业务逻辑层的CustomerService对象
     */
    @Autowired
    private CustomerService customerService;
​
    @GetMapping("/listCustomer")
    public String listCustomer(){
        return customerService.listCustomer().toString();
    }
}

3.13启动应用程序

http://localhost:8081/listCustomer

3.14 小结

entities 包下面放置实体类 1

mapper包放置Mapper接口,它负责数据库表和Java实体类属性的映射 2

service包放置业务逻辑接口和实现类 3

controller包放置控制器类 4

service业务逻辑需要依赖Mapper接口,所以需要自动装配

controller控制器需要依赖service,所以需要自动装配

你可能感兴趣的:(JAVA项目,spring,boot,bootstrap,maven,spring)