文章目录
一、一些准备工作
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
- 工程位置选择好
- 选择
Java
、Maven
- 按照实际开发设置一下
组名
、工件
、软件包名
- 选择
SDK
、Java版本
- 打包为
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();
}
}