04-SpringBoot 基础
对应原始资料:
springBoot基础/讲义/md/SpringBoot笔记.md
一、SpringBoot 是什么
SpringBoot 不是新框架,而是简化 Spring 开发的脚手架:
- 起步依赖:把常用依赖打包成 starter,开箱即用。
- 自动配置:根据依赖自动装配 Bean(约定大于配置)。
- 内嵌 Tomcat:直接 run 就能起服务,无需部署 war。
- 生产级监控:actuator、指标、健康检查。
二、快速入门
1. 创建项目
- IDEA → New Project → Spring Initializr。
- 或 https://start.spring.io 。
- 选依赖:Spring Web、MyBatis Framework、MySQL Driver。
2. pom.xml
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>3. 启动类
java
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}4. Controller
java
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() { return "Hello SpringBoot!"; }
}浏览器访问 http://localhost:8080/hello 即可。
三、配置文件
1. application.yml(推荐)
yaml
server:
port: 8080
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://localhost:3306/db1?useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
my:
app:
name: demo
version: 1.02. 多环境配置
application.yml:通用。application-dev.yml:开发环境。application-prod.yml:生产环境。- 在主配置
spring.profiles.active=dev激活。
3. 读取配置
java
@Value("${my.app.name}")
private String appName;
@ConfigurationProperties(prefix = "my.app")
@Component
@Data
public class AppConfig {
private String name;
private String version;
}四、SSM 整合(重点)
1. 依赖
xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.16</version>
</dependency>2. yml 配置
yaml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql:///db1
username: root
password: 123456
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.itheima.entity
configuration:
map-underscore-to-camel-case: true # 下划线转驼峰3. Mapper
java
@Mapper // 标记为 MyBatis Mapper
public interface UserMapper {
List<User> findAll();
}XML 放 resources/mapper/UserMapper.xml。
4. Service / Controller
java
@Service
public class UserServiceImpl implements UserService {
@Autowired private UserMapper userMapper;
public List<User> findAll() { return userMapper.findAll(); }
}
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired private UserService userService;
@GetMapping
public List<User> list() { return userService.findAll(); }
}5. 开启事务
启动类加 @EnableTransactionManagement,service 方法加 @Transactional。
五、常用整合
1. 热部署 devtools
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>2. 整合 JUnit
java
@SpringBootTest
class UserServiceTest {
@Autowired private UserService userService;
@Test void test() { userService.findAll(); }
}3. 整合日志
SpringBoot 默认用 Logback,配置文件直接写:
yaml
logging:
level:
com.itheima: debug
root: info
file:
name: logs/app.log六、打包与运行
bash
mvn clean package
java -jar target/app.jar --spring.profiles.active=prod可在命令行覆盖任何配置:--server.port=9090。
七、SpringBoot vs 原生 Spring
| 维度 | 原生 Spring + SpringMVC | SpringBoot |
|---|---|---|
| 配置 | XML / 注解大量 | 自动配置,少量 yml |
| 部署 | 打 war 部 Tomcat | 打 jar 直接跑 |
| 依赖 | 手动管理版本 | starter 自动管理 |
| 起步 | 麻烦 | 一个 main 方法 |
练习建议
- 用 Spring Initializr 创建项目,跑通 hello。
- 整合 MyBatis 完成用户 CRUD(RESTful)。
- 配置 dev/prod 两套环境,命令行切换。
- 用
@ConfigurationProperties读取自定义配置。 - 打 jar 包并用
java -jar运行。