文章目录
目录
文章目录
前言
一、自定义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());
}
总结
笔记