springboot快速入门

Springboot是一个简化Spring应用开发的框架,提供启动器简化Maven配置,支持独立运行,内嵌Tomcat。配置文件支持properties和yml格式,可通过@ConfigurationProperties和@Value注解读取配置。文章还介绍了如何整合数据源(如Druid)和MyBatis,包括依赖配置、数据源设置、Mapper接口及XML映射文件的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.大纲-springboot框架

1. 什么是Springboot以及Springboot的特点。
2. 快速搭建springboot项目
3. springboot常用的配置文件类型.
4. 读取springboot配置文件的内容
5. 多环境配置
6. springboot整合数据源。
7. springboot整合mybatis.

2. 什么是Springboot以及Springboot的特点。

2.1 什么是springboot?

Spring Boot是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置。Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。Spring Boot不但能创建传统的 war 包应用,还能创建独立的不依赖于任何外部容器(如:tomcat)的独立应用,使用 java -jar 命令就能启动。同时,Spring Boot也提供了一个命令行工具来执行 Spring 的脚本。

2.2 springboot特点

① 创建独立的 Spring 应用程序
② 嵌入的 Tomcat,无需部署 WAR 文件
③ 简化 Maven 配置
④ 自动配置 Spring
⑤ 提供生产就绪型功能,如指标,健康检查和外部配置
⑥ 开箱即用,没有代码生成,也无需 XML 配置

3.使用idea快速搭建springboot项目



到这里就搭建了一个简单的springboot项目

3.1 测试

创建一个controller包

@RestController
public class HelloController {

        @GetMapping("index")
        public HashMap<String, Object> hello(){
            HashMap<String, Object> map = new HashMap<>();
            map.put("name","哈哈哈");
            map.put("age", 20);
            return map;
        }

浏览器访问接口
在这里插入图片描述

4.pringboot常用的配置文件类型

properties和yml格式。他们的区别就是格式上不同。
properties格式如下:

# 修改端口号   默认8080
server.port=8888
# 修改路径  
server.servlet.context-path=/aaa

yml格式如下:

server:
port: 8887
servlet:
 context-path: /bbb

不管使用哪个配置文件,他们的名字必须叫application. 如果上面两个配置文件同时存在,而且里面有相同的配置。则properties优先级高于yml优先级。

5. java如何读取配置文件中的内容

读取方式有两种:
第一种方式:在实体类上加注解@ConfigurationProperties(prefix = “”)

@Data
@Component
@ConfigurationProperties(prefix = "")
public class Student {
    private String name;
    private Integer age;
    private String address;
    private List<String> hobby;
    private Map<String,Object> map;
}

properties配置文件格式:

# 信息
student.name=zhangxueyou
student.age=18
student.address=zhengzhou
student.hobby[0]=swing
student.hobby[1]=reading
student.hobby[2]=sing
student.map.a=1
student.map.b=2
student.map.c=3

yml配置文件格式:

#信息
student:
name: Idh
age: 18
address: beijinghobby:
hobby: 
  - swing
  - reading
  - sing
map :
 	a:1
	b:2
	c:3

第二种方式:使用@Value读取属性: 他只能读取基本类型和String类型。加在属性上
新建两个配置文件config.properties和configs.properties,分别写入如下内容:

zhbin.config.web-configs.name=Java旅途
zhbin.config.web-configs.age=22
zhbin.config.web-configs.name=Java旅途
zhbin.config.web-configs.age=18

新增一个类用来读取配置文件

@Configuration
@PropertySource(value = {"classpath:config.properties"},encoding="gbk")
public class GetProperties {

    @Value("${zhbin.config.web-configs.name}")
    private String name;
    @Value("${zhbin.config.web-configs.age}")
    private String age;

    public String getConfig() {
        return name+"-----"+age;
    }
}

6.多环境配置

多环境配置

7.springboot整合数据源

常用的主流开源数据库连接池有C3P0、DBCP、Tomcat Jdbc Pool、BoneCP、Druid等

我们使用druid数据源: ----连接数据库

(1) 引入相关依赖

  <!--mysql的驱动依赖-->
		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

(2) 配置数据源信息

#配置数据源信息
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/work?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.initial-size=6

测试

@SpringBootTest(classes = Qy163Springboot01Application.class)
class Qy163Springboot01ApplicationTests {

    @Autowired
    private DataSource dataSource;

    @Test
    void contextLoads() {
        System.out.println(dataSource);
    }

}

输出结果

{
	CreateTime:"2023-04-11 11:03:04",
	ActiveCount:0,
	PoolingCount:6,
	CreateCount:6,
	DestroyCount:0,
	CloseCount:0,
	ConnectCount:0,
	Connections:[
		{ID:645717550, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"},
		{ID:1620989914, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"},
		{ID:1457352442, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"},
		{ID:1298350375, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"},
		{ID:221145867, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"},
		{ID:521985523, ConnectTime:"2023-04-11 11:03:05", UseCount:0, LastActiveTime:"2023-04-11 11:03:05"}
	]
}

8.springboot整合mybatis

(1) 相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ykq</groupId>
    <artifactId>qy163-springboot02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>qy163-springboot02</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mybatis和springboot整合的依赖 启动依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

声明一下,web架构需要thymeleaf支持,而mybatis需要mybatis-spring-boot-starter支持.

(2) 配置文件

#数据源
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.url=jdbc:mysql://localhost:3306/work

#指定映射文件所在的路径
mybatis.mapper-locations=classpath:mapper/*.xml

#mybatis日志文件
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

(3) 测试

新建pojo实体类,对应数据库的表
在这里插入图片描述
mapper层

public interface StudentMapper{

   List<Student> findAll();

   int insert(Student student);

   int update(Student student);

   int delete(Integer sId);

}

在resources目录下新建mapper目录,并在这个目录下新建StudentMapper.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hm.mapper.StudentMapper">

    <resultMap id="BaseResultMap" type="com.hm.pojo.Student">
            <id property="sid" column="sid" jdbcType="INTEGER"/>
            <result property="sname" column="sname" jdbcType="VARCHAR"/>
            <result property="age" column="age" jdbcType="INTEGER"/>
            <result property="cid" column="cid" jdbcType="INTEGER"/>
    </resultMap>
    <!--查询-->
    <select id="findAll" resultMap="BaseResultMap">
        select * from student
    </select>
    <!--增加-->
    <insert id="insert">
        insert into student(sid, sname, age, cid) VALUES (#{sid},#{sname},#{age},#{cid})
    </insert>
    <!--修改-->
    <update id="update">
        update student set cid=#{cid},sname=#{sname},age=#{age} where sid=#{sid}
    </update>
    <!--删除-->
    <delete id="delete">
        delete from student where sid=#{sId}
    </delete>

</mapper>

在测试文件中测试

@SpringBootTest
class Qy163Springboot02ApplicationTests {

    @Resource
    private StudentMapper studentMapper;

    @Test
    void contextLoads() {
        System.out.println(studentMapper.findAll());
    }

    @Test
    void insert(){
        Student student = new Student();
        student.setSname("王子朋");
        student.setAge(99);
        student.setSid(6);
        student.setCid(2);

        System.out.println(studentMapper.insert(student));
    }

    @Test
    void update(){
        studentMapper.update(new Student(5,"哈哈哈",56,1));
    }

    @Test
    void delete(){
        studentMapper.delete(6);
    }
}
<think>嗯,用户想了解Spring Boot快速入门,我需要用中文详细但简洁地解释。首先得确定用户的基础,可能有一定的JavaSpring框架知识,但作为快速入门,应该从基础开始。 首先,Spring Boot是什么?要简单说明它的作用和优势,比如简化配置、内嵌服务器、自动配置等。然后,可能需要对比传统的Spring MVC,突出Spring Boot的便捷性。 接下来,步骤分几部分。创建项目、依赖管理、主类、控制器、配置、运行和构建。每个部分需要具体说明,但不要过于深入,保持快速入门的节奏。 创建项目部分,推荐使用Spring Initializr,无论是通过IDE还是网页。需要提到Maven或Gradle的选择,以及常用的依赖,比如Spring Web。可能用户不熟悉Initializr,需要简单说明操作步骤。 主类讲解时,要提到@SpringBootApplication注解,以及main方法的作用。自动配置和组件扫描的概念需要提及,但不用展开,保持简洁。 控制器部分,用@RestController和@RequestMapping举例,展示一个简单的GET接口。最好给出代码示例,并说明如何访问。 配置文件部分,application.properties或YAML的用法,比如改端口,但可能用户刚开始不需要太多配置,简单提一下即可。 运行和构建,说明如何通过IDE运行,或者用Maven命令打包成可执行的JAR。强调内嵌Tomcat,无需外部部署。 最后,补充常用注解和开发建议,帮助用户进一步学习。可能需要提醒常见问题,比如依赖缺失或端口冲突,但快速入门可能不需要深入,放在注意事项里简单提一下。 需要检查是否遵循了系统级指令,比如数学公式的格式,但这里可能用不上。结构要清晰,分步骤,每个步骤有小标题,用Markdown格式,但用户要求中似乎不需要,因为用户的问题是关于Spring Boot,可能不需要数学公式。不过系统指令要求所有行内数学表达式用$...$,所以如果有的话需要注意。但Spring Boot内容里可能不会有数学表达式,所以这点可能不用处理。 要确保用中文,术语正确,比如“自动配置”、“起步依赖”等。避免使用复杂术语,保持易懂。同时,示例代码要准确,比如主类的结构,控制器的注解使用是否正确。 可能需要考虑用户的实际操作,步骤是否清晰,能否跟着一步步完成。比如创建项目后,添加依赖,编写主类和控制器,然后运行。是否漏掉关键步骤?比如是否需要配置pom.xml或build.gradle,但通过Initializr生成的话可能不需要手动添加,但需要提到选择依赖。 总之,结构要分点,每个部分简明扼要,示例代码正确,强调Spring Boot的优势,让用户能快速上手一个简单的RESTful服务。</think>### Spring Boot 快速入门指南 --- #### **1. Spring Boot 简介** Spring Boot 是基于 Spring 框架的**快速开发脚手架**,核心优势是: - **简化配置**:自动配置(Auto-Configuration)减少 XML 或注解配置。 - **内嵌服务器**:默认集成 Tomcat/Jetty,无需手动部署。 - **起步依赖**:通过 `spring-boot-starter-*` 依赖快速集成功能模块(如 Web、数据库)。 - **生产就绪**:提供健康检查、指标监控等运维功能。 --- #### **2. 环境准备** - **JDK 17+**(推荐 OpenJDK) - **Maven 3.6+** 或 **Gradle 7.x** - **IDE**:IntelliJ IDEA(推荐)或 Eclipse --- #### **3. 快速搭建项目** ##### **3.1 创建项目** 使用 **Spring Initializr**(官方初始化工具)生成项目: 1. **在线生成**:访问 [https://start.spring.io](https://start.spring.io) 2. **IDE 创建**(以 IntelliJ 为例): - New Project → Spring Initializr → 选择依赖(如 `Spring Web`) ##### **3.2 项目结构** 生成的核心文件: ``` src ├── main │ ├── java │ │ └── com.example.demo │ │ └── DemoApplication.java # 主启动类 │ └── resources │ ├── application.properties # 配置文件 ├── test # 测试代码 pom.xml # Maven 依赖管理 ``` --- #### **4. 编写第一个接口** ##### **4.1 创建控制器** ```java import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, Spring Boot!"; } } ``` - `@RestController`:标记为 REST 控制器。 - `@GetMapping`:处理 HTTP GET 请求。 ##### **4.2 启动应用** 运行主类 `DemoApplication.java` 中的 `main` 方法,控制台输出: ``` Tomcat started on port(s): 8080 ``` ##### **4.3 测试接口** 访问 [http://localhost:8080/api/hello](http://localhost:8080/api/hello),返回结果: ```json Hello, Spring Boot! ``` --- #### **5. 核心配置** ##### **5.1 修改端口** 在 `application.properties` 中添加: ```properties server.port=9090 ``` ##### **5.2 自定义配置** ```properties # 自定义配置项 app.name=MySpringBootApp app.version=1.0.0 ``` 通过 `@Value` 注入配置: ```java @Value("${app.name}") private String appName; ``` --- #### **6. 常用注解** | 注解 | 说明 | |------|------| | `@SpringBootApplication` | 标记主类,启用自动配置 | | `@RestController` | REST 控制器,直接返回数据(非视图) | | `@RequestMapping` | 定义请求映射路径 | | `@Autowired` | 自动注入依赖 | | `@Configuration` | 标记配置类 | --- #### **7. 打包与部署** 使用 Maven 打包: ```bash mvn clean package ``` 生成 `target/demo-0.0.1-SNAPSHOT.jar`,运行: ```bash java -jar demo-0.0.1-SNAPSHOT.jar ``` --- #### **8. 开发建议** 1. **学习 Spring Boot 文档**:[https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) 2. **掌握常用 Starter**: - `spring-boot-starter-web`:Web 开发 - `spring-boot-starter-data-jpa`:数据库操作 - `spring-boot-starter-test`:单元测试 3. **调试工具**:使用 `spring-boot-devtools` 实现热部署。 --- #### **9. 注意事项** - **依赖冲突**:避免重复引入不同版本的库。 - **端口占用**:修改 `server.port` 解决端口冲突。 - **日志排查**:通过 `application.properties` 配置日志级别: ```properties logging.level.root=INFO logging.level.com.example.demo=DEBUG ``` --- 通过以上步骤,你可以快速搭建一个 Spring Boot 应用并实现基础功能。后续可逐步扩展数据库、安全(Spring Security)、缓存(Redis)等模块。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值