不知道在springboot中为什么不用定义版本号?看这里,带你Get为什么我们不用在springboot中定义版本

什么,springboot基础都还不会?那快来看看吧

springboot快速搭建生产级别项目,具体操作和细节上篇文章:click here

引言
在上一篇博文中,写完了如何快速构建一个生产级别项目,当然,搭建好了也只是才开始,后期开发过程依然从满艰辛
现在来通过源码看看springboot为什么这么强大

父工程介绍
这里用到的依然是上一部分新建产生的项目,创建springboot项目第一步是导入依赖父工程,那不妨就先来看看父工程长啥样子,父工程为何这么强大
先进入父工程pom依赖:(按住 ctrl,左键进入,进入源码一样操作)
在这里插入图片描述
进入我们自己创建的父工程当中,第一眼就看到了还有一个父工程,如下:
在这里插入图片描述
父工程的父工程
当然,这就是上一篇入门中提到的父工程的父工程,除了父工程引入,其次就是一些项目的信息,然后便是一些属性定义,最下面的全是build的内容,build里面那些都是啥玩意?现在别去管,入门重要的是知道父工程这个概念,现在就进入父工程的父工程吧
如下图(部分):

在这里插入图片描述
看到上面很清晰的圈起来的东西吗,用过maven的可能也不认识,但是你去读读意思,懂了吗,全是关系项目介绍,没必要看的东西
重点来了,下面三个包,这次的properties和build和这个工程里才有的dependencyManagement,这三个收缩起来的是干嘛,当然,这就是最重要的东东了,就不能像刚刚那个直接忽略了,一个一个来

打开properties:
在这里插入图片描述
大家可以看到,这全是版本号,应该知道拿来干嘛的了,全是来预定义版本的,这应该是最先直接看到的springboot强大之处的吧,它解决了大部分的版本冲突,为什么是大部分而不是全部,因为可能自己开发中还会导入其他外部依赖,但是这个地方定义的版本号已经可以说让你在开发中不会遇到像以前那种版本冲突了,这里大概算一下,183个版本号定义,想一想,让你去同时依赖并且自定义版本这183个依赖,你不会产生版本冲突?我觉得基本不可能。
现在看完了版本号管理,看一下第二个dependencyManagement,打开如下:
在这里插入图片描述
没见过这结构?没事,现在给你普及知识,平时导入依赖都在dependencies里面,但是现在多了一层,翻译过来,依赖管理,懂了吧应该,依赖管理就不是导入依赖的意思了,它来管理好,谁要用了直接依赖,就不用定于版本了,版本这里应该管理好了,真正导入依赖的,就是在我们自己创建的工程当中了,可以看到,有直接在这写版本的,但是后面其他依赖管理更多是引入的是上面的版本定义,防止版本冲突,这简直是解决了开发中经常遇到的大问题啊,不得不说springboot的强大
最后打开build:
在这里插入图片描述
可以看到里面只有一个pluginManagement,上面的dependenciesManagement看完了这里的应该就知道了,当然是插件管理,意思和上面相同,现在看完该pom文件了,相信就清楚了为什么我们创建工程后,依赖了父工程就导入依赖为什么不用写版本了,为什么springboot可以解决版本依赖了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot使用Redisson(集群版)可以使用以下步骤: 1. 添加Redisson依赖 在`pom.xml`文件添加以下依赖: ```xml <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>${redisson.version}</version> </dependency> ``` `${redisson.version}`是Redisson版本号,可以根据需要进行修改。 2. 配置Redisson 在SpringBoot配置Redisson可以通过自定义配置类实现,示例代码如下: ```java @Configuration public class RedissonConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.database}") private int database; @Value("${spring.redis.timeout}") private int timeout; @Bean(destroyMethod = "shutdown") public RedissonClient redisson() { Config config = new Config(); config.useClusterServers() .addNodeAddress("redis://host1:port1", "redis://host2:port2") .setPassword(password) .setDatabase(database) .setConnectTimeout(timeout) .setRetryInterval(5000) .setRetryAttempts(3) .setMasterConnectionMinimumIdleSize(10) .setMasterConnectionPoolSize(64) .setSlaveConnectionMinimumIdleSize(10) .setSlaveConnectionPoolSize(64) .setLoadBalancer(new RoundRobinLoadBalancer()); return Redisson.create(config); } } ``` 其,`host`、`port`、`password`、`database`、`timeout`等属性可以从`application.properties`文件获取。 `config.useClusterServers()`方法表示使用Redis集群模式,`addNodeAddress()`方法用于添加Redis节点地址,可以添加多个节点。其他方法则是对Redisson连接池的配置,可以根据需要进行修改。 3. 使用Redisson 在需要使用Redisson的地方注入`RedissonClient`,示例代码如下: ```java @Service public class UserService { @Autowired private RedissonClient redissonClient; public void addUser(User user) { RMap<String, User> map = redissonClient.getMap("users"); map.put(user.getId(), user); } public User getUser(String id) { RMap<String, User> map = redissonClient.getMap("users"); return map.get(id); } } ``` 以上示例代码,使用`redissonClient.getMap("users")`获取名为`users`的Redisson Map对象,然后可以使用Map对象进行Redis数据操作。 注意:在使用Redisson时,需要保证RedissonClient的单例,否则可能会出现连接泄漏等问题。可以使用SpringBoot的`@Scope("singleton")`注解或者将`RedissonClient`对象定义为静态变量来实现单例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值