文章目录


目录

文章目录

前言

一、自定义starter启动器

二、整合德鲁伊数据源

三、整合mybatis

 四、整合分页插件pagehelper

总结



前言

一些操作


一、自定义starter启动器

1.创建一个spring boot工程,引入依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.创建一个属性类

//作用: 解析springboot配置文件中提供得内容。
@ConfigurationProperties(prefix = "spring.my")
public class myProperties {
    private String name;
    private String address;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

 3.定义一个业务类

public class myService {

    private myProperties myProperties;

    public myService() {
    }

    public myService(myProperties myProperties) {
        this.myProperties = myProperties;
    }

    //业务代码
    public void hello(){
        System.out.println("姓名:"+myProperties.getName()+";家庭地址:"+myProperties.getAddress()+";年龄:"+myProperties.getAge());
    }
}

4.定义一个自动装配类 进行自动装配功能

@Configuration //标记该类为配置类
@EnableConfigurationProperties(myProperties.class) //开启属性配置
@ConditionalOnClass(myService.class) //只要myService被引入后,当前得类才会创建
@ConditionalOnProperty(prefix = "spring.my", value = "enabled", matchIfMissing = true) //如果引用者没有给定相关得属性值,则采用默认值
public class myAutoConfiguration {

    @Autowired
    private myProperties myProperties;

    @Bean
    @ConditionalOnMissingBean //当IOC容器中不存在该bean对象时 才会创建
    public myService myService(){
        return new myService(myProperties);
    }
}

 5.在resource下创建一个目录MATE-INF 里面创建一个文件名spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xxx.myAutoConfiguration

6.打包安装应用

mvn install:install-file -DgroupId=com.xxx -DartifactId=my-starter -Dversion=1.0 -Dpackaging=jar -Dfile=jar包的路径

二、整合德鲁伊数据源

<!--引入druid得数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.1</version>
        </dependency>
      <!--引入数据源依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

在 application.yml配置里面配置,使用yml格式不会有中文乱码

#配置德鲁伊数据源
spring:
    datasource:
        druid:
            driver-class-name: com.mysql.jdbc.Driver
            initial-size: 5
            max-active: 10
            password: 12345/
            url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
            username: root

测试在spring boot 测试类里面

//数据源对象---自己有没有创建该类对象---因为你引入spring-boot-starter-jdbc启动依赖。
    //该依赖得自动装配类 帮你创建好DataSource对象 交于容器管理
    @Autowired
    private DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        System.out.println(dataSource);
    }

三、整合mybatis

1.引入依赖

<!--mybatis整合启动依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

2. 修改配置文件

# 配置mybatis
mybatis:
    configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    mapper-locations: classpath:/mapper/*.xml

3.在resources下新建mapper,里面放映射文件。主函数同级目录下建POJO或者dao

4.第一种实现方式。适合最近版本的spring boot

//需要在dao层或者pojo层都加注解
//@Mapper : 表示本类是一个 MyBatis 的 Mapper
//@Repository 表示给dao层生成对应实现类
@Mapper
@Repository
public interface StudentMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Student record);

    int insertSelective(Student record);

    Student selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Student record);

    int updateByPrimaryKey(Student record);

    List<Student> selectAll();
}

然后,其他的业务层和控制层,照旧。

第二种 spring boot版本靠前的,支持在主函数里面。扫描dao层或者pojo层

@SpringBootApplication(scanBasePackages = "com.xxx")
@MapperScan(basePackages = "com.xxx.dao")//自动扫描包给包下所有接口生成对应的mapper
public class SpringbootFrameworkIntegrationApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootFrameworkIntegrationApplication.class, args);
    }

}

 四、整合分页插件pagehelper

直接引入该启动器依赖就能使用

<!--pagehelper分页插件得依赖-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>

测试

@Test
    public void testFindAll(){
        //开始分页 分几页 每页多少条
        PageHelper.startPage(2,3);
        List<User> all = userDao.findAll();

        //获取分页之后的信息
        PageInfo<User> pageInfo=new PageInfo<>(all);
        System.out.println("总条数:"+pageInfo.getTotal());
        System.out.println("当前页得记录:"+pageInfo.getList());
    }

总结

笔记