SpringBoot-2.4 新建工程及常规配置

文章目录

    • 一、一些准备工作
      • 1-1 配置Maven
        • 1. 下载安装
        • 2、修改配置文件
        • 3、配置 IDEA 中的 MAVEN
      • 1-2 下载相关插件
        • Lombok
        • MyBatisX
    • 二、创建新工程
      • 2-1 配置开发环境等
      • 2-2 配置SpringBoot版本+初始依赖
    • 三、一些基础配置
      • 3-1 引入阿里巴巴Druid、配置
      • 3-2 配置使用MyBatis-Plus开发Controller
        • 配置包扫描:
        • 新建JavaBean
        • 新建Mapper
        • 新建Service
        • 新建ServiceImpl
        • **持久层的使用**


SpringBoot-2.4 新建工程及常规配置_第1张图片

一、一些准备工作

1-1 配置Maven

1. 下载安装

纯绿色软件,直接解压(配置)就可以使用

下载

  • 官网
    • http://maven.apache.org/
  • 下载地址
    • https://maven.apache.org/download.cgi

配置

  • 依赖Java,需要配置 JAVA_HOME
  • 设置自身运行环境,需要配置 MAVEN_HOME
    • MAVEN_HOME
    • D:\Program Files\apache-maven-3.8.4
  • PATH 添加
    • %MAVEN_HOME%\bin

2、修改配置文件

  • 配置文件位置
    • D:\Program Files\apache-maven-3.8.4\conf\settings.xml

A、本地仓库配置

<localRepository>D:\maven\repositorylocalRepository>

B、远程仓库配置

  • 配置阿里云镜像仓库
<mirror>
	
	<id>nexus-aliyunid>
	
	<mirrorOf>centralmirrorOf>
	
	<name>Nexus aliyunname>
	
	<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>

C、将配置文件拷贝到本地仓库同级目录

3、配置 IDEA 中的 MAVEN

SpringBoot-2.4 新建工程及常规配置_第2张图片

1-2 下载相关插件

Lombok

SpringBoot-2.4 新建工程及常规配置_第3张图片

MyBatisX

SpringBoot-2.4 新建工程及常规配置_第4张图片

二、创建新工程

2-1 配置开发环境等

SpringBoot-2.4 新建工程及常规配置_第5张图片

  • Spring Initializr
  • 服务器URI配置为阿里云:https://start.aliyun.com
  • 工程位置选择好
  • 选择 JavaMaven
  • 按照实际开发设置一下组名工件软件包名
  • 选择 SDKJava版本
  • 打包为 Jar

2-2 配置SpringBoot版本+初始依赖

SpringBoot-2.4 新建工程及常规配置_第6张图片

  • 直接 2.4.1 版本
  • 选择常用的依赖:
    • lombok # 简化Java Bean开发
    • Spring Boot DevTools # 开发插件,可以设置热重载
      • 【热重载】项目或者页面修改以后:Ctrl+F9
    • Spring Configuration Processor
    • Spring Web
    • MyBatis Plus Framework # 持久层框架
    • MySQL Driver # 数据库链接驱动
    • Spring Boot Actuator #指标监控

三、一些基础配置

3-1 引入阿里巴巴Druid、配置

pom.xml 中引入:


<dependency>
    <groupId>com.alibabagroupId>
    <artifactId>druid-spring-boot-starterartifactId>
    <version>1.1.17version>
dependency>

application.yml 中简单配置一下:

  • 花括号中的内容,根据实际情况配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/{数据库名}?useSSL=false&characterEncoding=utf8
    username: root
    password: {密码}
    driver-class-name: com.mysql.jdbc.Driver

    druid:
      aop-patterns: com.xueou.boot.*  # spring bean 监控
      filters: stat,wall,slf4j
      max-active: 12
      stat-view-servlet:
        enabled: true
        # 登陆账号密码
        login-username: xueoup
        login-password: {密码}
        reset-enable: false

      web-stat-filter: # web监控
        enabled: true
        url-pattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

      filter:
        stat: #sql监控
          # 慢查询时间阈值
          slow-sql-millis: 1000
          logSlowSql: true
          enabled: true
        wall: #防火墙
          enabled: true
          config:
            drop-table-allow: false

3-2 配置使用MyBatis-Plus开发Controller

  • com.xueoup.boot 下新建下列包:
    • bean
    • mapper
    • service
    • service.impl

配置包扫描:

- `com.xueoup.boot/MyApplication.java`
```java
@MapperScan("com.xueou.boot.mapper")
@ServletComponentScan(basePackages = {"com.xueou.boot"})
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(CompApplication.class, args);
    }
}
```

新建JavaBean

  • bean/Stu.java
    @Data
    @ToString
    @AllArgsConstructor
    @NoArgsConstructor
    @TableName("stus")
    public class Stu {
        @TableId(type = IdType.AUTO)
        private int id;
        private String name;
        private String gender;
        private String stuId;
        @TableField("class_name")
        private String cls;
        private String phone;
        private String teacher;
        private String major;
        // 宿舍
        private String dorm="";
    }
    

新建Mapper

  • mapper/StuMapper.java
    public interface StuMapper extends BaseMapper<Stu> {
    }
    

新建Service

  • service/StuService.java
    public interface StuService extends IService<Stu> {
        List<Stu> getByClass(String className);
        List<Stu> queryByKeyword(String keyword);
    }
    

新建ServiceImpl

  • service/impl/StuServiceImpl.java
    一定不要忘了 @Service 注解
    @Service
    public class StuServiceImpl
            extends ServiceImpl<StuMapper, Stu>
            implements StuService {
        @Override
        public List<Stu> getByClass(String className) {
            if("all".equals(className)){
                return list();
            }
            QueryWrapper<Stu> wrapper = new QueryWrapper<>();
            wrapper.eq("class_name", className);
            wrapper.orderByAsc("name");
            return list(wrapper);
        }
    
        @Override
        public List<Stu> queryByKeyword(String keyword) {
            QueryWrapper<Stu> wrapper = new QueryWrapper<>();
            String[] keys = keyword.split("\\s+");
            for (String key:
                    keys) {
                wrapper.or().like("name", key).or().like("stu_id", key);
                wrapper.or().like("teacher", key);
            }
            wrapper.orderByDesc("name");
            return list(wrapper);
        }
    }
    

持久层的使用

1、Test类中:AutoWired 注解

@SpringBootTest
class StuApplicationTests {
    @Autowired
    StuService stuService;

    @DisplayName("这是一个简单的测试:")
    @Test
    void contextLoads() {
        List<Stu> lst = stuService.list();
        System.out.println(lst);
    }
}

2、Controller 中:Resource 注解

@RestController
public class StuController {
    @Resource
    StuService stuService;

    @GetMapping("/stus/{class}")
    public Map<String, Object> getByClassName(@PathVariable("class") String className){
        Map<String, Object> map = new HashMap<>();
        String[] c = {"xxxxxx","就不告诉你~"};
        List<Object> classes = Arrays.asList(c);
        if(className.isEmpty()){
            map.put("states", 500);
            map.put("msg", "班级为空");
        }
        else if(classes.contains(className)){
            map.put("states", 200);
            map.put("msg", "获取成功");
            List<Stu> stus = stuService.getByClass(className);
            map.put("data", stus);
        }else{
            map.put("states", 500);
            map.put("msg", "班级名称错误");
        }
        return map;
    }

    @GetMapping("/stus-all")
    public List<Stu> getAll(){
        return stuService.list();
    }
}

你可能感兴趣的:(SpringBoot,JavaWeb开发,spring,boot,java,后端,开发流程,常规配置)