springboot快速入门

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);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值