avatar
文章
360
标签
49
分类
10
首页
时间轴
分类
关于
Logo只有那年胜过年年
搜索
首页
时间轴
分类
关于

只有那年胜过年年

MyBatis 传递多个参数的 4 种方式
发表于2025-10-29|后端
现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。 下面给大家总结了以下几种多参数传递的方法。 方法1:顺序传参法 public User selectUser(String name, int deptId); <select id="selectUser" resultMap="UserResultMap"> select * from user where user_name = #{0} and dept_id = #{1} </select> #{}里面的数字代表你传入参数的顺序。 这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。 方法2:@Param注解传参法 public User selectUser(@Param("...
为什么 Netty 这么火?与 Mina 相比有什么优势
发表于2025-10-29|后端
Netty是什么?为什么这么火? Netty是目前最流行的由JBOSS提供的一个Java开源框架NIO框架,Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 相比JDK原生NIO,Netty提供了相对十分简单易用的API,非常适合网络编程。Netty是完全基于NIO实现的,所以Netty是异步的。 作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 Netty无疑是NIO的老大,它的健壮性、功能、性能、可定制性和可扩展性在同类框架都是首屈一指的。它已经得到成百上千的商业/商用项目验证,如Hadoop的RPC框架Avro、RocketMQ以及主流的分布式通信框架Dubbo等等。 为什么这么火,是有原因的。 Netty的优点可以总结如下 1、API使用简单,开发门槛低; 2、功能强大,预置了多种编解码功能,支持多种主流协议; 3、定制能力强,可以通过ChannelHandler对通信框架进行灵活地扩展...
推荐一款 MyBatis 开发神器,为简化而生
发表于2025-10-29|后端
今天栈长给使用 MyBatis 的同学推荐一款神器:MyBatis-Plus,简称 MP,它是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景就是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。 官网地址: https://mybatis.plus/ Github地址: https://github.com/baomidou/mybatis-plus 现在已经超过 5K+ Star 了。。 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、...
10 分钟快速上手 Shiro 新手教程
发表于2025-10-29|后端
当前用户现在我们能够开始做一些我们真正关心的事情——执行安全操作。 当保护我们的应用程序时,我们对自己可能提出的最为相关的问题是“当前用户是谁”或“当前用户是否被允许做XXX”。 当我们编写代码或设计用户接口时,问这些问题是很常见的:应用程序通常是基于用户的背景情况建立的,且你想基于每个用户标准体现(保障)功能。因此,对于我们考虑应用程序安全的最自然的方式是基于当前用户。 Shiro的API使用它的Subject概念从根本上代表了“当前用户”的概念。 几乎在所有的环境中,你可以通过下面的调用获取当前正在执行的用户: Subject currentUser = SecurityUtils.getSubject(); 使用 SecurityUtils.getSubject(),我们可以获得当前正在执行的Subject。Subject是一个安全术语,它基本上的意思是“当前正在执行的用户的特定的安全视图”。它并没有被称为”User”是因为”User”一词通常和人类相关联。 在安全界,术语”Subject”可以表示为人类,而且可是第三方进程,cron job,daemonacc...
Shiro Realm 权限的验证流程和缓存机制
发表于2025-10-29|后端
我们可以定义多个Realm权限类,继承AuthenticatingRealm。 如果是这样,那Shiro验证的策略和顺序是怎样的呢? 策略通过查看源码,Shiro的Spring Boot自动配置是至少一个通过策略,即有一个权限类通过就判定有权限并通过。 自动配置类: org.apache.shiro.spring.config.web.autoconfigure.ShiroWebAutoConfiguration @Bean @ConditionalOnMissingBean @Override protected AuthenticationStrategy authenticationStrategy() { return super.authenticationStrategy(); } protected AuthenticationStrategy authenticationStrategy() { return new AtLeastOneSuccessfulStrategy(); } 其他还有全部通...
一文搞定 Spring Boot & Shiro 实战
发表于2025-10-29|后端
Spring Boot集成Shiro权限验证框架,可参考: https://shiro.apache.org/spring-boot.html 引入依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version>1.4.0</version> </dependency> 配置ShiroShiroConfig: @ConfigurationProperties(prefix = "shiro") @Configuration public class ShiroConfig { @Autowired private ApplicationConfig applicationConfig; private L...
非常详尽的 Shiro 架构解析
发表于2025-10-29|后端
Shiro是什么?Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应该尽可能掩盖复杂的地方,露出一个干净而直观的API,来简化开发人员在使他们的应用程序安全上的努力。 官网:http://shiro.apache.org Shiro有什么用?以下是你可以用Apache Shiro所做的事情: 验证用户来核实他们的身份 对用户执行访问控制,如: 判断用户是否被分配了一个确定的安全角色; 判断用户是否被允许做某事; 在任何环境下使用Session API,即使没有Web或EJB容器。 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应。 聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”。 启用单点登录(SSO)功能。 为没有关联到登录的用户启用”Remember Me”服务 以及更多——全部集成到紧密结合的易于使用的API中。 Shiro 视图在所有...
Spring Enable 高级应用及原理
发表于2025-10-29|后端
Enable*之前的文章用到了一些Enable*开头的注解,比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等,Enable表示开启/允许一项功能。 Enable*工作原理我们只需要几个很简单的注解就能开启一个复杂的功能,这是多么简易的用法,这是怎么办到的? 首先来看看计划任务@EnableScheduling的源代码 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import(SchedulingConfiguration.class) @Documented public @interface EnableScheduling { } 主要核心的配置就是导入了一个配置文件,所以谜底也就接开了。 @Import(SchedulingConfiguration.class) @Import用法来看看Import的源码 @Target(ElementType.TYPE) @Retent...
Spring Aware 容器感知技术
发表于2025-10-29|后端
Spring Aware是什么Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源。 Spring Aware的分类几种常用的Aware接口如下。 Aware接口 说明 ApplicationContextAware 能获取Application Context调用容器的服务 ApplicationEventPublisherAware 应用事件发布器,可以用来发布事件 BeanClassLoaderAware 能获取加载当前Bean的类加载器 BeanFactoryAware 能获取Bean Factory调用容器的服务 BeanNameAware 能获取当前Bean的名称 EnvironmentAware 能获取当前容器的环境属性信息 MessageSourceAware 能获取国际化文本信息 ResourceLoaderAware 获取资源加载器读取资源文件 ServletConfigAware 能获取到ServletConfig ServletContextA...
Spring 事务失效的 8 大原因,这次可以吊打面试官了
发表于2025-10-29|后端
今天再来一篇《吊打面试官》系列,这次真的要吊打了,哈哈!(看往期吊打系列请在后台回复:吊打,我会陆续更新……) 前几天栈长不是发了一篇文章,里面有一个关于事务失效的问题: 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景? 其中有个热心粉丝留言分享了下,我觉得总结得有点经验,给置顶了: 但是我觉得还是总结得不够全,今天栈长我再总结一下,再延着这位粉丝的总结再补充完善一下,不用说,我肯定也不见得总结全,但希望可以帮忙有需要的人。 1、数据库引擎不支持事务这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。 根据 MySQL 的官方文档: https://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html 从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再怎么搞都是白搭。 2、没有被 Spring 管理如下...
1…151617…36
avatar
2025
文章
360
标签
49
分类
10
公告
🌸 春去秋来,花开花落 📚 桌上的日历又薄了几页 💭 记忆中的昨天还那么清晰
最新文章
掌握 Spring 框架这 10 个扩展点,开发效率直接翻倍2025-11-10
Minikube安装教程2025-11-07
Deepseek 本地部署各个版本超级详细教学,网页版、软件版2025-11-04
Slow HTTP POST 慢速攻击2025-10-30
JDK 紧急漏洞,XMLDecoder反序列化攻击2025-10-30
分类
  • 其他3
  • 区块链4
  • 后端225
  • 安全漏洞3
  • 工具30
  • 性能4
  • 教程1
  • 数据库21
  • 架构15
  • 程序人生54
标签
文章LinuxJVM分布式技术其他区块链基础安全漏洞多线程性能优化新特性架构算法程序人生行业动态规范资料集合进阶面试Elastic JobdockerJWTDubboMyBatisNettyShiroSpringSpring MVCSpring CloudTomcatSpring BootZookeeper日志开源综合技术消息队列缓存连接池Eclipse
归档
  • 2025年11月 3
  • 2025年10月 355
  • 2025年09月 1
  • 2024年12月 1
网站信息
文章数目 :
360
本站访客数 :
本站总浏览量 :
最后更新时间 :
访客地图
© 2025 By 2025
搜索
数据加载中