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\repository</localRepository>

B、远程仓库配置

  • 配置阿里云镜像仓库
<mirror>
	<!-- 镜像唯一标识符,用以区分不同的 mirror元素	 -->
	<id>nexus-aliyun</id>
	<!-- 对那种仓库进行镜像/ 替代那个仓库 -->
	<mirrorOf>central</mirrorOf>
	<!-- 镜像名称 -->
	<name>Nexus aliyun</name>
	<!-- 镜像URL -->
	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</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.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.17</version>
</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();
    }
}
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的壳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值