springboot整合01

本文介绍了SpringBoot的自动装配原理,包括@EnableAutoConfiguration和相关组件的作用,以及如何整合数据库(默认数据源和Druid)、MyBatis框架、PageHelper分页插件和Spring的定时器功能。通过实例展示了配置和测试过程。

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

1.springboot自动装配原理

我们在使用springboot时,并没有像之前项目加载我们的前端控制DispatcherServlet,也没有写编码过滤器。但是springboot可以完成请求以及编码的设置。

原理: 主启动类上的@SpringBootApplication注解上,而该注解是一个复合组件,而在复合注解中存在@EnableAutoConfiguration, 这个@EnableAutoConfiguration注解也是一个复合注解,包含@Import---而@Import注解导入一个AutoConfigurationImportSelector 【自动配置选择器】,在该类中存在一个方法getAutoConfigurationEntry --作用:得到自动配置类的实体。而这些自动配置类会完成相应的自动装配。

 

 

 

2.springboot整合数据原--连接数据库

2.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>

 springboot自动配置会加载jdbc的自动配置类---读取springboot配置文件中数据源的信息,从而完成数据源的自动配置。

2.application配置文件中配置 数据源

#配置数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=12345
spring.datasource.url=jdbc:mysql://localhost:3306/test1?serverTimezone=Asia/Shanghai

3.测试

 

@SpringBootTest
class Qy168Springboot03ApplicationTests {

    @Autowired
    private DataSource dataSource;//springboot帮你完成数据源的自动装配
    @Test
    void contextLoads() throws SQLException {
        System.out.println(dataSource.getConnection());
    }

}

2.2设置Druid数据源

1.引依赖

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

 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/test1?serverTimezone=Asia/Shanghai
#初始化数量
spring.datasource.druid.initial-size=5
#最大数据源数量
spring.datasource.druid.max-active=10

 

3.测试

 

3.springboot整合mybatis框架 

ssm===>spring框架需要配置SqlSesssionFactoryBean对象,还有配置DAO接口的代理实现类。

springboot会自动配置SqlSesssionFactoryBean对象,必须引入starter依赖

 1.依赖

   <!--mybatis和springboot整合的依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

2.创建实体类

@Data
public class User {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Double balance;
}

3.dao接口 

public interface UserDao {
    public List<User> findAll();
}

4.mapper映射文件 

<?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">
<!--namespace必须和dao接口的名称一模一样-->
<mapper namespace="com.aaa.qy168springboot03.dao.UserDao">

    <select id="findAll" resultType="com.aaa.qy168springboot03.entity.User">
        select * from t_user 
    </select>
</mapper>

5.修改application配置文件内容   指定mapper文件 路径

mybatis.mapper-locations=classpath:/mapper/*.xml

4.springboot整合pageHeper分页插件

1.依赖

      <!--pageHelper的依赖-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.5</version>
        </dependency>
 

2.测试

 @Test
    public void testFindAll(){
        PageHelper.startPage(1,3);//拦截器: select * from t_user
        List<User> all = userDao.findAll();
        //把查询的结果封装到PageInfo类中
        PageInfo<User> pageInfo=new PageInfo<>(all);
        System.out.println("总条数:"+pageInfo.getTotal());
        System.out.println("总页数:"+pageInfo.getPages());
        System.out.println("当前页的记录:"+pageInfo.getList());
    }

 5.springboot整合定时器

可以在规定的时间内执行相应的代码。

比如: OSS文件上传---OSS的文件冗余的文件。----OSS的浪费。---->指定的时间自动删除。[夜间删除]

比如: 下单--->30分钟未支付---取消订单。

1.定时器依赖


        <!--引入定时器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

2.编写定义的业务代码

@Component
public class scheduld {
    @Autowired
    private EmpDao empDao;

    // 定时器任务执行代码
    @Scheduled(cron = "0/5 * * * * ? ")
    public void show(){
        System.out.println("----------------");
       empDao.inset(new Emp());
    }
}

 3.开启定时注解驱动

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值