SpringBoot使用

SpringBoot

0.所需依赖

	<!-- 继承父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.5</version>
    </parent>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!--  Web启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
		<!--   mybatis启动器-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.1</version>
        </dependency>
        <!-- mybatis-plus  -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>

        <!-- 数据库相关配置启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- druid启动器的依赖  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>1.2.18</version>
        </dependency>

        <!-- mysql驱动类-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.6</version>
        </dependency>
        
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.28</version>
        </dependency>
    </dependencies>
</project>

1.SpringBoot Web项目简单使用

1.导入依赖

<!-- 继承父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.5</version>
 </parent>
  <!--  Web启动器 -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
     </dependency>

2.编写启动类

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

3.编写Controller

@RestController
public class HelloController {

    @GetMapping("/hello")
    public List<Schedule> hello(){
        return "hello world";
    }
}

2.SpringBoot整合MybatisPlus

1.MybatisPlus CRUD

1.pom依赖
   <!-- mybatis-plus  -->
   <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.5.3.1</version>
    </dependency>
   <!-- 数据库相关配置启动器 -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-jdbc</artifactId>
     </dependency>
     <!-- druid启动器的依赖  -->
     <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid-spring-boot-3-starter</artifactId>
         <version>1.2.18</version>
     </dependency>
     <!-- mysql驱动类-->
     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.28</version>
     </dependency>
2.整合druid数据源,编写配置文件application.ym
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      url: jdbc:mysql:///headline
      username: root
      password: root
      driver-class-name: com.mysql.cj.jdbc.Driver

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true  #驼峰式转下划线
  type-aliases-package: com.atguigu.pojo  # 配置别名
  mapper-locations: classpath:/mapper/**/*.xml  #mapper.xml位置
3.添加Druid自动装配文件
文件名:
META-INF/spring
/org.springframework.boot.autoconfigure.AutoConfiguration.imports
内容:
com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure
4.Mapper CRUD
interface XXXMapper extends BaseMapper<Pojo>
5.Service CRUD
接口:
   interface XXXService extends IService<Pojo>
实现类:
    XXXServiceImpl extends ServiceImpl<XXXMapper, Pojo> implements XXXService
WapperQueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq("username",user.getUsername());
    return userMapper.selectOne(wrapper);
6.启动类和接口扫描
@SpringBootApplication
@MapperScan("com.atguigu.mapper")
public class SpringBootMain {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootMain.class,args);
    }
}

2.MybatisPlus 逻辑删除

1.添加逻辑删除字段
 @TableLogic
 private Integer isDeleted;
2.添加全局配置
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

3.MybatiPlus 分页

1.引入分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
    return interceptor;
}
2.使用分页
    //设置分页参数
    Page<User> page = new Page<>(1, 5);
    userMapper.selectPage(page, null);
    //获取分页数据
    List<User> list = page.getRecords();
    list.forEach(System.out::println);
    System.out.println("当前页:"+page.getCurrent());
    System.out.println("每页显示的条数:"+page.getSize());
    System.out.println("总记录数:"+page.getTotal());
    System.out.println("总页数:"+page.getPages());
    System.out.println("是否有上一页:"+page.hasPrevious());
    System.out.println("是否有下一页:"+page.hasNext());

4.MybatisPlus使用乐观锁

1.引入版本号更新插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
    return interceptor;
}
2.添加版本号字段

3.整合定时任务

1.pom依赖

 <dependency>
   <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.12.5</version>
  </dependency>

2.cron表达式

   @Scheduled(cron = "0/10 * * * * ?")
   public void function(){
   
   }
 //规定cron表达式就执行一次方法
//https://cron.qqe2.com/
// cron表达式  秒 分 时 日 月 周 年
//            0/10 * * * * ? ->每十秒执行一次
//            0 0/2 * * * ?    表示每2分钟一次
 

3.SpringBoot整合Redis

1.Jedis客户端

1.依赖
  <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
  </dependency>
2.使用
    @Test
    public void testJedis(){
        Jedis jedis = new Jedis("192.168.91.11", 6379);
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
    }

2.整合Redis

1.依赖
   <!-- 默认 Lettuce 作为操作redis的底层客户端-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
   <!-- 切换 jedis 作为操作redis的底层客户端-->
  <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
       <exclusions>
           <exclusion>
               <groupId>io.lettuce</groupId>
               <artifactId>lettuce-core</artifactId>
           </exclusion>
       </exclusions>
   </dependency>
   <!--        切换 jedis 作为操作redis的底层客户端-->
   <dependency>
       <groupId>redis.clients</groupId>
       <artifactId>jedis</artifactId>
   </dependency>
2.配置文件(application.yml)
spring:
  data:
    redis:
      host: 192.168.91.11
      port: 6379
      client-type: jedis
      jedis:
        pool:
          max-active: 8
          enabled: true
3.RedisTemplat(允许将java对象转成json格式)
@Configuration
public class AppRedisConfiguration {

    /**
     * 允许Object类型的key-value,都可以被转为json进行存储。
     * @param redisConnectionFactory 自动配置好了连接工厂
     * @return
     */
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        //把对象转为json字符串的序列化工具
        template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }
}
4.使用
    @Autowired
    RedisTemplate redisTemplate;
    @Test
    public void test01(){
        redisTemplate.opsForValue().set("age","22");
        System.out.println(redisTemplate.opsForValue().get("age"));
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值