Maven是最流行的Java项目构建工具
为什么需要使用Maven?
在JavaWeb开发中Maven能够帮我们自动管理jar包、自动构建项目。
1.1 安装Maven
-
官网下载:Maven – Welcome to Apache Maven
-
安装:解压压缩包即可。
-
Maven核心配置文件setting.xml
1.2 配置环境变量
MAVEN_HOME 配置Maven的目录
在系统的Path中配置 %MAVEN_HOME%bin
打开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。
-
选择File-->Settings-->Build,Execution,Deployment-->Maven
2.选择File-->Settings-->Build,Execution,Deployment-->Maven-->Runner
-DarchetypeCatalog=internal
3.选择File---> Other Settings---> Settings for New Projects
窗前其他的工程Maven配置也跟之前一样
2第一个SpringBoot程序目标:向web浏览器输出HelloSpringBoot
步骤如下:
2.1创建父工程
2.2定义父工程的POM文件
4.0.0 com.shouyi shouyixueyuan-springboot-water1.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 lombokprovided ${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 ***.xml false ${project.basedir}/src/main/resources ** @RestController public class HelloController { @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;
@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 @RestController3 使用SpringBoot在浏览器输出客户信息
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-webch.qos.logback *org.apache.logging.log4j * org.springframework.boot spring-boot-starter-actuatororg.springframework.boot spring-boot-devtoolsruntime true org.springframework.boot spring-boot-starter-log4j1.3.8.RELEASE org.springframework.boot spring-boot-starter-testtest org.junit.vintage junit-vintage-engine mysql mysql-connector-java com.baomidou mybatis-plus-boot-startercom.alibaba druid-spring-boot-starterorg.projectlombok lombokio.springfox springfox-swagger2 io.springfox springfox-swagger-uicn.hutool hutool-all log4j log4jorg.slf4j jcl-over-slf4jorg.junit.platform junit-platform-launcherorg.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控制器
3.6定义SpringBoot启动类
package com.wenhua.springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@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
3.8定义Customer实体类
package com.wenhua.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
@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; @Repository public interface CustomerMapper extends baseMapper{ List listCustomer(); }
3.10编写业务逻辑接口Service
package com.shouyi.service;
import com.shouyi.pojo.Customer;
import java.util.List;
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;
@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;
@RestController
public class CustomerController {
@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,所以需要自动装配



