[飞天奔月出品] 三分钟 Spring Custom XML Schema 初窥门径

1.背景

作为一名系统架构师/技术经理, 化繁为简是必修课;将繁琐重复的代码封装成简便的使用方式给开发工程师使用,从而提高开发效率, 是件很有成就感的事情

2. 抛个问题

你知道你们项目中有多少地方使用到 HttpSession 的吗?

举凡项目大一点, 时间 3 年+以上的项目, 如果是直接使用 request.getSession 模式来设置属性的, 没有一个人能清晰的知道自己项目中有多少地方使用 session 的

3. 改进

基于上述痛点, 我使用了 SessionAccessor 进行了改进,


<project>

	....
	<properties>
		<version.feilong-platform>1.13.0</version.feilong-platform>
		....
	</properties>

	....
	<repositories>
		<repository>
			<id>feilong-repository</id>
			<url>https://raw.github.com/venusdrogon/feilong-platform/repository</url>
		</repository>
	</repositories>

	....
	<dependencies>
		....
		<dependency>
			<groupId>com.feilong.platform</groupId>
			<artifactId>feilong-util-all</artifactId>
			<version>${version.feilong-platform}</version>
		</dependency>
		....
	</dependencies>
	....
</project>

使用方式

配置 spring 启动 ContextRefreshedBeanLoggingEventListener

我们可以在控制台 清晰的看到 当前项目使用多少 session

4. 能不能再简单点

有小伙伴说 代码还是太多了 , 还能不能再简单点

下面是本 topic 目标:

<feilong:accessor-session id="guestAllowedSessionAccessor" key="11511" />

5. 本知识点作用及地位

如果只想做普通程序员,可以忽略本知识

如果想做个有追求的程序员,学完之后,你会发现 spring 更多有趣的东西

6. 使用方式

7. 原理

7.1 五要素

  • spring.schemas
  • feilong.xsd
  • spring.handlers
  • FeilongNamespaceHandler
  • SessionAccessorBeanDefinitionParser

分布图

7.2 spring.schemas

7.3 feilong.xsd

7.4 spring.handlers

7.5 FeilongNamespaceHandler

7.6 SessionAccessorBeanDefinitionParser

8 尾声

知其然而知其所以然, 会让你更自信; 如此这般之后, 你会发现, "哦, mvn:annotation-driven aop:config 这些标签原来是这么实现的啊!" 从而达到心领神会的境界

9 参考

https://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/extensible-xml.html

转载于:https://my.oschina.net/venusdrogon/blog/3044192

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-28

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值