springboot 基本框架的构建与讲解

1.什么是springboot
2.为什么使用springboot
3.如何创建springboot工程
4.java中如何读取springboot配置文件的内容
5.springboot整合数据源
6.springboot整合mybatis-plus

1.什么是springboot

Spring Boot是一个用于构建Java应用程序的开源框架。它简化了Java应用程序的开发过程,提供了一种快速、便捷的方式来创建独立的、可执行的、生产级别的Spring应用程序。Spring Boot基于Spring框架,通过自动配置和约定优于配置的原则,减少了开发人员的工作量,使得开发过程更加高效。它还提供了许多开箱即用的功能和插件,如内嵌的Web服务器、安全性、数据库访问、缓存等,使得开发人员可以更专注于业务逻辑的实现。总之,Spring Boot是一个强大的框架,可以帮助开发人员快速构建可靠、高效的Java应用程序。

2.为什么使用springboot

使用Spring Boot有以下几个主要的好处:

  1. 简化配置:Spring Boot采用了约定优于配置的原则,提供了自动配置的能力。它能够根据项目的依赖和环境,自动配置很多常用的功能,如数据库连接、Web服务器、安全性等。这样,开发人员可以专注于业务逻辑的实现,而无需手动配置繁琐的参数。

  2. 快速启动:Spring Boot内置了一个嵌入式的Web服务器,如Tomcat、Jetty等,可以直接打包为可执行的Jar文件或War文件。这样一来,不仅减少了部署的复杂性,还可以快速启动应用程序,提高开发和测试的效率。

  3. 微服务架构支持:Spring Boot为构建微服务应用提供了良好的支持。它提供了丰富的功能和插件,如服务注册与发现、负载均衡、断路器等,使得开发者可以更容易地实现和管理微服务架构。

  4. 生态系统和社区支持:Spring Boot建立在Spring框架的基础上,拥有庞大的生态系统和活跃的开源社区。这意味着开发者可以轻松地找到各种成熟的解决方案、第三方库和文档支持,可以快速解决问题,提高开发效率。

3.如何创建springboot工程

3.1搭建springboot工程

 

 

 

 

 

编写controller层代码

@RestController
@RequestMapping("/hello")
public class MyController {
​
    @GetMapping("/world")
    public Map<String,Object> index(){
        Map<String, Object> map = new HashMap<>();
        map.put("name","xbb");
        map.put("age","22");
        return map;
    }
}
3.2springboot中jar包的配置

 

3.3springboot配置文件的种类

springboot使用两种格式的配置,内容格式不同。

 

 

第一种: 后缀名为.properties

 

第二种: 后缀名为.yml

 

两种格式文件都可以配置,如果两种配置内容相同,以properties为主。如果不同都能用。

4.读取springboot配置文件的内容

1.在Spring Boot中,可以通过使用@Value注解

@Value("${student.name}")
    private  String name;
    @Value("${student.age}")
    private Integer age;
​
    @GetMapping("/nihao")
    public String test01(){
        return "name:"+name+",age:"+age;
    }
#aplication.properties文件中
student.name=吕小布
student.age=28

2.通过@ConfigruationProperties

@Data
@Component //交给容器管理
@ConfigurationProperties(prefix = "teacher") //读取配置文件以teacher开头的配置
public class Teacher {
    private String name;
    private Integer age;
}
​  @Autowired
    private Teacher teacher;

    @GetMapping("/hello2")
    public Teacher test02(){
        return teacher;
    }

@Value只能读取基本类型和String 类型,而@ConfigurationProperties可以读取任意类型。

5.springboot整合数据源

5.1设置默认数据源

(1)引入相关依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

(2)aplication.properties配置文件中配置数据源

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.data-username=root
spring.datasource.data-password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/mysql5_1?serverTimezone=Asia/Shanghai

(3)测试

@SpringBootTest
class Myjava15springbootApplicationTests {
    @Autowired
    private DataSource dataSource;//帮你完成数据源的自动装配
@Autowired
private DeptDao deptDao;
​
    @Test
    void contextLoads() {
        System.out.println(dataSource);
    }
}
​
5.2设置druid 数据源

(1)引入依赖

​
        <!--druid数据源的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.1</version>
        </dependency>

(2)修改配置文件

#德鲁伊 druid
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/mysql5_1?serverTimezone=Asia/Shanghai

(3)测试,(测试的时候把默认数据源的配置文件给先注释掉)

@SpringBootTest
class Myjava15springbootApplicationTests {
    @Autowired
    private DataSource dataSource;//帮你完成数据源的自动装配
@Autowired
private DeptDao deptDao;
​
    @Test
    void contextLoads() {
        System.out.println(dataSource);
    }
}
​

6.springboot整合mybatis-plus

Mybatis-plus官网:(MyBatis-Plus)以Mybatis-plus官网为准。

(1)引入依赖

 <dependencies>
        <!--mp的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
​
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </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.1</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>

(2)配置aplication.properties文件发

#德鲁伊 druid
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/mysql5_1?serverTimezone=Asia/Shanghai
#初始化对象的连接个数
spring.datasource.druid.initial-size=5
#最多的连接数
spring.datasource.druid.max-active=10
​
#指定映射文件所在路径
mybatis.mapper-locations=classpath:/mapper/*.xml
​
​
#sql-日志 控制台
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
​

(3)实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("student")
public class Student {
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    private String name;
    private String phone;
    private String email;
    private String profession;
    private Integer age;
    private int gender;
    private  int status;
    @DateTimeFormat(pattern = "yyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GTM+8")
    private Date createtime;
}

(4)dao层

public interface StudentDao extends BaseMapper<Student> {
}

(5)扫描dao接口

@SpringBootApplication
@MapperScan(basePackages = "com.aaa.dao")
@EnableSwagger2
public class Myjava17Application {
​
    public static void main(String[] args) {
        SpringApplication.run(Myjava17Application.class, args);
    }
​
}

(6)service层

public interface StudentService {
    public Result selectList();
​
    public Result selectById(Integer id);
   
}
​

(7)serviceImpl层

@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private  StudentDao studentDao;
   
​
    public Result selectById(Integer id){
​
        Student student = studentDao.selectById(id);
        return  new Result(200,"查询成功",student);
    }
​
​
}

(8)controller层

@RestController
@RequestMapping("/student")
//@Api(tags = "学生管理接口")
public class StudentController {
    @Autowired
    private StudentService studentService;
​
​
    @GetMapping("/findbyid")
    public Result selectById(Integer id){
        return studentService.selectById(id);
  
}
​

(9)测试

 

(完)

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐