1-SpringCloudAlibaba开篇
1. 官方文档cloud config discovery 版本对比说明 同时,官方也表明了比较明确了, 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。 2. SpringCloudAlibaba 版本说明及选择alibaba 版本必须要与springcloud版本对应关系保持一致,否则会出现许多未知问题,所以选择的时候要注意匹配关系。官方整理的如下图,也可以见官网版本对比说明 这里建议选择 alibaba spring cloud springboot 2.2.6.RELEASE Spring Cloud...
5-spring中nacos作为配置中心和服务发现
1. 项目搭建1.1. 引入依赖1234567891011<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-spring-context</artifactId> <version>0.2.2-RC1</version></dependency><!--方便测试用--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId></dependency> 1.2. 启动类启动类和普通的springboot启动类配置一样就行了 123456@SpringBootApplicationpublic class...
4-nacos配置@ConfigurationProperties值为空分析
1. 问题由来nacos的属性注入的思路和spirng的属性注入是相似的,因此在分析使用nacos的时候按照spring的对应注解用法使用,其对应关系为: nacos spring @NacosPropertySource @PropertySource @NacosConfigurationProperties @ConfigurationProperties @NacosValue @Value 因此按照配置如下配置工程 nacos中配置 项目依赖 12345<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.10</version></dependency> 启动类 12345678@SpringBootApplication//...
3-nacos作为配置中心
1. 依赖引入nacos既有服务注册与发现功能,也有配置功能,在spring boot下分别有两个依赖 123456789101112<!--主要从nacos中获取配置--><dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.10</version></dependency><!--主要负责服务注册与发现--><dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-discovery-spring-boot-starter</artifactId> ...
2-Nacos服务器搭建
1. 下载Nacos本文用的推荐的版本2.1.1 文档地址 Nacos可以在github上下载,下载地址也可以自己拉代码打包nacos 测试我选择用windows本地启动,直接选择了方便的方式下载的压缩包,然后解压,得到压缩包 其中,bin下是启停脚本。 2. 部署 部署前可以先修改conf/application.properties配置文件,根据自己的需要修改,注意官网说到nacos.core.auth.plugin.nacos.token.secret.key=这个值以后版本需要强制自定义,否则会报错 然后执行bin/statrtup.cmd -m standalone,linux执行bin/startup.sh -m standalone启动。这里启动的是单体应用,没有配置nacos集群,后续配置如果这里报错com.alibaba.nacos.api.exception.NacosException: java.net.UnknownHostException:...
10-Spring Transactional事务
1. 目录[TOC] 2. 说明@Transactional为spring提供的申明式事务管理,开发者可以很快速的开启事务,同时,其自带了事务管理,可以在事务结束时自行提交或回滚,大大减少了程序编码,同时也避免了IO连接泄露同时,@Transactional 还提供了传播特性和隔离级别,更好的扩展了程序中可能出现的场景 3. 依赖分析4. 源码分析4.1. 自动配置事务管理器spring项目中需要在xml文件中配置事务管理器,而springboot中通过@EnableTransactionManagement来开启事务生效,新版本中已经不需要@EnableTransactionManagement了,直接通过TransactionAutoConfiguration类来进行自动配置,注入需要的类。 4.1.1. 加载TransactionAutoConfigurationspringboot自动化配置会扫描配置的configuration,加载主要为spring...
4 sql关键字用法
usingusing等价于join操作中的on,然后匹配两张表的相同字段;例如a和b根据id字段关联,那么以下等价using(id) <-> on a.id=b.id如以下2个实例等价: 123select a.name,b.age from t_1 as a join t_2 as b on a.id=b.id等价于select a.name,b.age from t_1 as a join t_2 as b using(id) 还可以根据多值相等,如 123select a.name,b.age from t_1 as a join t_2 as b on a.id=b.id and a.name=b.name等价于select a.name,b.age from t_1 as a join t_2 as b using(id,name) with as12345with as temp_name_a( -- 这里就是查询回来一个临时表 select col_a,col_b,col_c from a inner join b on...
NIO模型
1. 说明NIO主要包括 Selector Channel Buffer 三部分 Buffer 缓冲区,实际上为一块内存 Channel 通道,为数据链接的载体 Selector 选择器,NIO主要的协调者,通过对SelectorKey的轮询实现对不同订阅的调用处理 具体详见Java NIO (图解+秒懂+史上最全) 已经说的很细了Java面试常考的 BIO,NIO,AIO 总结() 后续主要提供一个简单的演示,实际要复杂的多 2. 缓冲区以Intbuffer为例 123456789101112131415161718@Testpublic void intBuffer(){ //创建缓冲区 IntBuffer intBuffer = IntBuffer.allocate(10); //写数据 for (int i = 0; i < 10; i++) { intBuffer.put(i); } //翻转 需要注意的是翻转了也可以写的,但是会挨个儿覆盖数据 ...
9-Spring AOP动态代理分析
1. 目录[TOC] 2. 说明AOP动态代理是在bean初始化的过程中,在两个地方执行 doCreateBean()->initializeBean()->applyBeanPostProcessorsAfterInitialization()后处理中执行 添加Bean到singletonFactories时创建的匿名内部类中。调用的时候是在doGetBean()中的getSingleton方法,执行内部类方法getEarlyBeanReference() 两个地方的处理类均为AnnotationAwareAspectJAutoProxyCreator,将原来的bean通过动态代理解析成代理之后的bean 3. 依赖分析4. 源码分析1234567891011@Overridepublic Object postProcessAfterInitialization(@Nullable Object bean, String beanName) { if (bean != null) { Object cacheKey =...
