AI IDE正式上线!通义灵码开箱即用
作为AI原生的开发环境工具,通义灵码AI IDE深度适配了最新的千问3大模型,并全面集成通义灵码插件能力,具备编程智能体、行间建议预测、行间会话等功能。
日本股票 API 对接实战指南(实时行情与 IPO 专题)
随着巴菲特增持日本商社及日经225强势表现,日本股市备受关注。本文介绍如何通过StockTV API(countryId=35)快速接入日本股市实时行情、IPO新股日历与K线数据,支持秒级更新与多周期技术分析,助力开发者高效构建金融应用。
整合SpringSecurity
本文介绍了Spring Security与Spring Boot的整合步骤:引入依赖、启动验证及登录测试。通过日志变化和自动跳转至login页面验证集成成功,使用默认用户名user和控制台生成的动态密码登录后,可访问受保护资源。完整代码见GitHub仓库Day01分支。
RememberMe简介及用法
RememberMe是Web应用中常见的“记住我”功能,通过服务端生成持久化令牌(Token)并存储于Cookie,实现用户关闭浏览器后仍保持登录状态。与直接保存用户名密码不同,该机制基于安全令牌验证身份,避免重复登录。Spring Security通过`rememberMe()`配置启用此功能,但需防范令牌泄露风险,可通过数据库持久化Token并结合二次校验提升安全性。
TypeExcludeFilter注解
TypeExcludeFilter通过match()方法扩展组件过滤机制,可向IOC容器注册自定义过滤器,在包扫描时筛选组件。其依赖Spring顶层BeanFactory接口,利用getBean、isTypeMatch等方法实现灵活的类型匹配与过滤,增强扫描控制能力,适用于复杂场景的组件管理。
Redis集群伸缩,转移插槽失败
当Redis集群出现slot迁移异常时,可通过日志定位处于importing状态的slot ID。登录对应实例后,执行`cluster setslot <ID> stable`命令恢复稳定状态,解决迁移卡住问题。注意根据实际日志中的slot ID调整参数。
SpringSecurity--过滤器链加载原理
本节深入解析Spring Security过滤器链加载原理:通过`DelegatingFilterProxy`代理初始化`FilterChainProxy`,再由其获取`SecurityFilterChain`中定义的多个过滤器,最终形成完整的安全过滤链,揭示框架背后自动装配机制。
@SpringBootConfiguration注解
@SpringBootConfiguration是@Configuration的封装,标注主启动类,使其所在包成为组件扫描的根路径。因此主类需置于外层包,确保所有组件被扫描到,实现自动配置与组件注入。
AutoConfigurationExcludeFilter注解
AutoConfigurationExcludeFilter核心为match()方法,用于判断类是否为自动配置类。其在TypeExcludeFilter基础上扩展,重点识别同时满足配置类与自动配置条件的类,实现精准排除。
@Retention注解
元注解用于修饰其他注解,其中SOURCE表示编译后不保留,CLASS为默认值,编译后保留在class文件中但不可被虚拟机读取,RUNTIME则可被虚拟机读取,支持反射机制,实现运行时处理。
SpringBoot--不定参数入参
本文介绍了接口入参的三种常见方式:非JSON格式直接传参、JSON格式传递单个或多个独立参数,以及通过封装对象接收JSON参数。涵盖Spring Boot下@PostMapping的典型用法,提升接口设计规范与可维护性。(238字)
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation虚拟机工具,可从百度云下载所需资源。使用VMware创建虚拟机,参考指定教程完成安装,系统默认用户名为root,密码由用户自设。确保电脑配置满足运行要求。
@ComponentScan注解
该注解原用于Spring框架的XML配置中,指定包扫描路径。在SpringBoot中,默认扫描主配置类所在包及其子包的组件,并可通过exclude排除特定类,实现自动装配与组件管理。
SpringBoot怎么过滤不需要的组件
Spring Boot中IOC容器确实存在,若不想某些Bean在启动时注入,可通过@ComponentScan指定扫描范围,或自定义TypeExcludeFilter排除特定类,也可在配置文件中设置过滤规则,灵活控制Bean加载。
了解@RefreshScope本身
@RefreshScope是Spring的组合注解,核心为@Scope("refresh"),实现配置热加载。通过代理机制在每次调用时重新获取实例,结合@Target与@Retention元注解,控制作用范围与生命周期,实现Bean的动态刷新,适用于配置中心场景。
SpringBoot--常用过滤器介绍
Spring Security通过过滤器链实现安全控制,涵盖认证、授权、CSRF防护等。如SecurityContextPersistenceFilter管理上下文,UsernamePasswordAuthenticationFilter处理登录,LogoutFilter处理退出。不同配置下过滤器数量和类型可变,灵活适配需求。(238字)
common-lang3
避免三目运算符引发Java自动拆装箱异常,当类型不一致时可能导致NPE。建议统一操作数类型或显式转换,确保基本类型与包装类混用时的安全性,提升代码稳定性与可读性。
@Documented注解
该注解可用于生成Javadoc文档,结合@Target、@Retention等元注解,是实现自定义注解的基础。掌握其用法可提升代码可读性与开发效率。详情可参考“自定义注解”教程。
@Inherited 注解
@Inherited使@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan注解可被继承,SpringBoot主启动类因此具备自动配置、组件扫描等功能,简化配置。详情见:@Inherited作用说明。
dashboard基础指控
Arthas简介:通过`dashboard`查看线程信息,`jad`反编译类,`thread`分析线程堆栈与阻塞,`watch`监控方法参数、返回值及异常。支持按状态筛选线程,查看CPU占用、运行时间等。`quit`退出连接,`stop`彻底关闭Arthas。字符数:238。
Soul网关接入与验证
本章基于前两章搭建的应用,引入Soul网关,重点讲解Provider与Consumer如何通过注解和配置接入Soul。涵盖pom依赖、Controller注解(@SoulSpringMvcClient)、配置文件参数说明,并支持HTTP与Dubbo双协议注册,最后验证服务是否成功接入。
MaBatis--分页
本文介绍了五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、原生SQL分页、数组分页及拦截器分页。对比了逻辑分页与物理分页的优劣,指出大数据量下应优先选用物理分页,避免内存溢出,提升系统性能。
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现多节点审批,广泛应用于CRM、WMS等系统。主流技术包括BPMN、Activiti和Flowable,其中Activiti为Java系开源引擎,支持复杂流程自动化,推动企业流程数字化发展。(238字)
搭建dubbo-zk应用
基于SpringBoot 2.2.2 + Dubbo 2.0.0构建分布式系统,使用Zookeeper作为注册中心,JDK 1.8开发。项目分为父工程、API接口模块、服务提供者与消费者,实现服务暴露与远程调用,通过Postman验证通信正常。
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题。通过`thread`定位高耗能线程,`watch`监控方法调用与异常,结合`jad`反编译与`redefine`实现热更新,无需重启服务即可修复代码,提升线上问题响应效率。适用于SpringBoot + JDK8环境。
MyBatis--常见配置
MyBatis配置优先级:方法参数 > resource/url属性 > properties元素内属性。支持多环境配置,通过environments指定默认环境和数据源,结合事务管理器(JDBC/MANAGED)管理事务,常用于多数据源场景,与Spring集成时由Spring接管事务管理。
SpringBoot--无标题
被@Configuration标注的类会被Spring IOC容器识别为配置类,作用等同于applicationContext.xml配置文件。通过注解方式注册Bean,结合AnnotationConfigApplicationContext可启动容器并管理Bean。示例代码展示了配置类及Bean的加载过程,输出结果显示配置类与组件均被成功注册到容器中。
SpringBoot--@Configuration
被 @Configuration 标注的类视为Spring配置类,等同于XML配置文件。结合 @Bean 注册Bean,通过 AnnotationConfigApplicationContext 加载配置类,可启动IOC容器并管理Bean实例,实现基于Java的配置。
MyBatis--映射关系
MyBatis中通过resultMap实现关联映射:一对一使用resultMap解决字段与属性不一致;一对多通过<collection>映射集合,如用户关联多个角色;多对一用<association>,如博客关联作者;多对多借助中间类,如用户与部门通过UserForDept建立双向关联。
Java泛型类型擦除以及类型擦除带来的问题--泛型擦除引起的问题及解决方法
Java泛型在编译时先进行类型检查再擦除,类型检查针对引用而非对象。擦除后泛型转为原始类型,通过自动强转实现安全取值。多态中因擦除可能导致重写失效,编译器生成桥方法解决。泛型不支持基本类型,静态成员不能使用类的泛型参数,但泛型方法可独立定义类型。instanceof不适用泛型类型判断。
Java泛型类型擦除以及类型擦除带来的问题--什么是泛型擦除后保留的原始类型
泛型擦除后生成原始类型,类型参数被替换为其限定类型(如无则用Object)。例如`Pair<T>`变为`Pair`,成员变为`Object`;若`T extends Comparable`,则替换为`Comparable`,确保类型安全与兼容性。