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



    一、一些准备工作

    1-1 配置Maven

    1. 下载安装

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

    下载

    配置

    • 依赖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

    1-2 下载相关插件

    Lombok

    MyBatisX

    二、创建新工程

    2-1 配置开发环境等

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

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

    • 直接 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();
        }
    }
    
  • 相关阅读:
    从0到1的二次反序列化
    大学生期末大作业之购物网站
    Drupal 9删除丢失的模块
    Windows虚拟机访问网页证书错误问题
    【React源码】(十一)fiber 树渲染
    git恢复commit过的代码
    NLP实践——Few-shot事件抽取《Building an Event Extractor with Only a Few Examples》
    C++类和对象(下)
    科普数据库
    idea Java代码格式化规范
  • 原文地址:https://blog.csdn.net/qq_45020818/article/details/127038771