- 博客(90)
- 收藏
- 关注
原创 Go的初级核心实用开发
Go 语言的设计哲学强调简洁、高效和并发编程。通过掌握上述实用编程技巧,你可以编写出更加优雅、高效且易于维护的 Go 代码。defer:简化资源管理,确保资源在函数结束时正确释放。sync.Once:确保初始化只执行一次,避免重复初始化。:管理请求上下文,处理超时和取消。goroutine和channel:实现高效的并发编程。:等待多个 goroutine 完成。select:处理多个通道的操作,实现超时和取消。sync.Map:处理并发访问的 map。error。
2024-12-23 11:53:57
1196
原创 Idea超级常用且实用的快捷键
快捷键作用选中内容连续2次Shift键快速在项目中查找该内容CTRL+鼠标左键单击方法名进入该方法CTRL+ALT+鼠标左键单击方法名找到该方法的实现CTRL+ALT+键盘左/右键回退上/下一步操作CTRL+N快速查找类CTRL+Shift+N快速查找文件Alt+当前标签页关闭除当前标签页外的所有标签页Ctrl+Alt+U查看当前类/接口的关系图,不另开标签页Ctrl+Shift+Alt+U查看当前类/接口的关系图,新开标
2024-03-28 15:57:22
337
原创 Git的基础使用
git pull 拉取合并到工作目录–>git add 文件 到暂存区—>git commit -m "注释"提交到本地仓库—>git push推送到远程仓库(推送前保证本地所有工作均已提交commit,push前养成pull的习惯)
2024-03-11 13:02:44
1217
原创 动态数据源dynamic-spring-boot-starter
application.yml配置文件(!!!不要配错datasource)动态切换数据源有两种情况:第一种情况,假设每个用户有唯一的省份,每个省份又有对应的数据库,用户在发送请求时携带省份唯一标识,根据省份标识来连接对应的数据源。dynamic会自动获取ThreadLocal中的省份标识,并自动查找连接对应的数据源第二种情况,一个用户需要处理多个数据源的数据Dynamic提供了 注解,该注解可以作用在方法上,类上,接口上对于某个接口、类、方法操作的是哪个数据源,直接使用@DS注解声明对
2024-01-24 10:13:12
570
1
原创 EasyExcel与Lombok的@Accessors注解的冲突
在使用EasyExcel读写Excel表格时,不得与Lombok的@Accessors(chain = true)注解同时使用,否则不生效原因详见:https://blog.csdn.net/qq_28036249/article/details/108035369实际开发中能不用Lombok就不用,出现的冲突和bug不止这一个了
2024-01-22 10:31:36
685
原创 MybatisPlus的主键ID生成策略和公共字段自动填充的使用及注意事项
实体类@TableId注解的type属性会覆盖全局属性,优先以各实体类的配置为主,未配置的则全局配置生效。
2024-01-22 10:17:06
2603
原创 Seata-分布式事务框架
Seata提供了四种不同的分布式事务解决方案:分阶段事务模式,牺牲了一定的可用性,无业务侵入的分阶段事务模式,无业务侵入,也是Seata的模式,性能好,通过加全局锁保证数据一致性的分阶段事务模式,有业务侵入,性能更好,不需要加锁,通过人工写代码实现回滚SAGA模式:长事务模式,有业务侵入(无隔离,会出现脏写,这里不讲解)微服务可以不同的模式!
2024-01-04 16:34:18
1027
原创 分布式事务-CAP定理与BASE理论
由于网络问题是不可完全避免的,所以分区容错性P是必须要满足的,但出现分区情况就不能同时保证数据一致性C和可用性A,因为出现网络故障时,要保证数据一致性C的话,节点间不能进行数据同步,网络有问题的节点就会一直阻塞等待数据同步,从而导致节点服务不可用,不能保证可用性A。要保证可用性A的话,节点间数据不能同步,就不能保证数据一致性C。因此,CAP定理有两种情况,AP 和 CP。
2024-01-03 14:38:45
430
原创 Docker仓库搭建与镜像推送拉取
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。官网地址:https://hub.docker.com/_/registry。
2024-01-02 18:39:28
722
原创 Dockerfile与DockerCompose
示例:基于Ubantu镜像构建一个新镜像,运行一个java项目。docker-compose构建镜像并运行命令。
2024-01-02 18:35:36
554
原创 Shiro安全框架基础入门使用
获取当前登录用户的角色、权限信息,返回给shiro用来进行授权认证myRealm继承AuthorizingRealm并重写doGetAuthorizationInfo(PrincipalCollection principalCollection)方法创建对象,封装当前登录用户的角色、权限信息获取当前用户的身份信息调用业务层从数据库查询用户的角色信息调用业务层从数据库查询用户的角色信息存储角色存储权限返回信息@Autowired。
2024-01-02 16:21:48
1046
原创 Docker基础操作命令与常用容器创建
【摘自百度百科】Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
2023-12-21 09:10:24
1662
原创 spring boot配置文件格式 ${}和@@
{}和@@都是springboot引用属性变量的方式,具体区别与用法:1、${}常用于pom.xml,和 src/main/resources/application.properties等配置文件的属性变量引用。语法为:field_name=${field_value}pom.xml示例:
2023-12-04 22:18:15
1670
原创 @Autowired注入其他模块的bean失败
一、在Spring Boot中,如果要自动扫描和创建bean,需要在应用的启动类上使用@ComponentScan注解来指定要扫描的包。确保上述代码中的com.demo是你的包路径的根路径。如果com.demo.config是在com.demo包路径下的一个子包,那么它也应该被正确扫描到。另外,请检查是否有其他方式明确定义了GlobalConfig的bean,如在XML配置文件中使用元素定义了该bean。如果有,请将其移除,并使用@ComponentScan注解来自动扫描bean。
2023-11-10 20:27:18
461
原创 npm install puppeteer失败
在package.json的同级目录中创建 .npmrc文件。配置自己的chrome浏览器的安装地址。.npmrc文件中写入配置,跳过下载chrome。
2023-10-19 11:50:55
1295
原创 Spring Task+Cron表达式
不需要导入坐标spring-context(包含在了spring-boot-starter)在类的方法上添加@Scheduled(cron = “cron表达式”)在启动类添加@EnableScheduleing开启任务调度。单独建个定时任务包task,创建定时任务类MyTask。cron表达式不需要自己写,直接工具网站生成。cron有六/七个域 空格隔开 第七个是年。在定时任务类添加@Component。
2023-07-23 16:33:35
338
原创 abstract的使用细节
abstract的使用细节抽象类不能被实例化抽象类中不止有抽象方法,也可以有普通方法,构造器,静态属性等一旦类包含了abstract抽象方法,则此类必须声明为abstract类抽象方法不能有主体,即不能实现如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非他自己也声明为abstract类
2023-06-27 10:01:54
192
原创 Java内部类
有类名的叫局部内部类/方法内部类没有类名的叫匿名内部类(重点!!!!!没有static修饰的叫成员内部类有static修饰的叫静态内部类。
2023-06-27 09:58:40
123
原创 SpringMVC核心:返回值类型以及JSON交互
3、无返回值 一般配合response httpServletResponse.getWriter().write();1、请求转发 return “/xxx.do”;2、重定向 return"redirect:/xxx.do" (改变访问路径)@RequestBody 将接受的参数转为对象/集合/Map等。4、返回值为自定义类或者集合 (最终会被转换为json)@ResponseBody 将返回结果值转为JSON格式。@JsonIgnore 忽略某属性json格式的转换。首先将返回值转为JSON格式。
2023-06-16 14:12:11
840
原创 Spring 依赖注入
一般自定义类的对象属性注入,可以使用自动注入,常用的有两种方式:1、byType 2、byName。当属性的类型为:1、数组 2、List集合 3、Set集合 4、Map集合 5、自定义类等,(“”)配合使用,当同一类型的bean不止一个,就用@Qualifier通过名称指定。通过命名空间p标签实现属性值,本质还是set方法(古老,少见)@Autowired 通过类型注入 ,与。@Qualifier(“”) 通过名称注入。标签赋值注入,本质是set方法,详见。自动注入,本质set方法(少见)
2023-06-08 01:18:15
525
原创 Maven高级 继承聚合与私服
在maven文件conf文件夹下的settings.xml文件中的servers中位置用户名和密码。在settings.xml的mirrors、profiles中配置私服依赖下载的仓库组地址。在父工程里引入所有子工程,然后只要package父工程就行了。release发行版,snapshot快照版(开发版)、在maven工程的pom文件配置仓库(上传地址)把多个模块之间的共有的依赖提取出来放进父工程。在父工程中对子工程依赖的版本进行统一管理。父工程指定打包方式为pom。发布:点击生命周期的。
2023-06-04 00:28:57
74
原创 SpringBoot原理(面试率90%)
自动配置就是 当spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。:判断环境中没有对应的bean(类型或名称),才注册bean到IOC容器,还可以使用name或value属性指定bean。,则该配置类及类中通过@Bean声明的bean都会被导入IOC容器,如。配置类以及类中通过@Bean声明的bean都会被导入IOC容器。,数组里面封装了所有要交给IOC容器的类,这些类的来源是从。注解,@Import注解里封装了一个。
2023-06-03 13:22:08
314
原创 bean对象的手动获取和作用域以及第三方bean的声明
2、根据IOC对象提供的方法获取//返回值为Object类型,需要强转根据bean的名称获取(名称默认为首字母小写的类名)根据bean的类型获取(类名.class)根据bean的名称以及类型获取二、bean的作用域默认情况下, Spring项目启动时,会把bean都自动创建好放在IOC容器中,但会受到作用域以及延迟初始化影响,这里主要针对的是默认单例非延迟加载的bean而言,实际开发中绝大多数bean都是单例的,不需要配置作用域将创建bean这步操作由项目启动时,延迟到第一次
2023-06-03 09:26:40
704
原创 Spring boot配置优先级
命令行参数Java系统属性application.propertiesapplication.ymlapplication.yaml
2023-06-02 17:39:36
72
原创 String AOP的使用
面向切面编程,面向特定方法编程,以方法为对象,在不修改原方法的基础上,对方法进行操作扩展等,底层是通过实现的使用开发步骤:1、创建一个类,加上@Aspect声明为一个AOP切面类,再加上@Component交给IOC容器来管理2、定义方法3、方法上加上通知类型注解,注解内使用切入点表达式,指定要被代理的方法路径以及返回值类型 ,重点掌握环绕通知如:用于 匹配标识有特定注解的方法//匹配标识有Log注解的方法,com.itheima.anno.Log为注解的全类名。
2023-06-02 02:18:38
430
原创 过滤器JavaWeb:Filter与拦截器Spring:Intercepter
4、doFilter方法中使用FilterChain的doFilter方法可以放行拦截请求,因此放行之前的操作写在FilterChain的doFilter方法之前,放行之后访问到对应资源后,还会回到doFilter方法执行放行后的代码,因此放行后的操作写在FilterChain的doFilter方法之后。1、创建一个类implements Fliter接口中的doFilter方法(init,destroy默认实现)多个filter的执行顺序是按照filter类的类名Abc…3、将定义的拦截器注册。
2023-06-01 03:43:07
464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人