动态注册 Bean 到 Spring 中
如果需要要启动后向 Spring 容器个注册一个动态创建的对象,可以通过以下几个方式实现:
- 直接注册 Singleton 对象
- 注册 BeanDefinition
如果需要要启动后向 Spring 容器个注册一个动态创建的对象,可以通过以下几个方式实现:
本文介绍如何快速在 PostgreSQL 中新建 DB 和用户并完成授权,简要如下,详细说明请看详情页。
TL;DR
1 | sudo -u postgres psql |
Spring 中常用 @PropertySource
注解来加载指定配置文件,但是 @PropertySource
注解也有一些限制,如:
本文将通过扩展的方式解决以上的需求。
最近在开发一个 Telegram 小机器人,由于功能简单所以也没考虑用什么大型的关系数据库啥的,选用了 Sqlite3 这个嵌入式数据库,它的数据库就是一个文件。
程序原先使用的是 Python 2 写的,在写完核心功能后决定将代码基于 Python 3 调整一下,引人 SQLAlchemy ORM 来管理数据实体。(这次调整使用 ORM 极大方便了后面功能的加入)
调整成 Python3 后在本地运行没有任何问题,但是一发布到服务器上运行就会报 no module named '_sqlite3'
错误。
最近在开发 Quartz Job 任务时有一种很迫切的需求,希望能动态调整生产的 Job 的运行,开启或停止 Job、调整 Job 的运行频率。翻了一下源码,基于 Quartz 的 Scheduler 扩展一个。
在开发集成了 Quartz 的应用时,由于 Quartz 在开发环境一般也会自动启动。这样会给人造成不少烦恼,一个是启动 Job 会影响本地的运行效率,同时如果是分布
式模式的 Quartz 会出现本地抢任务运行,又由于本地和测试环境的各种不一致,会出现很多奇怪问题。
GenericJackson2JsonRedisSerializer
是 Spring Data Redis 包提供的一个类,用于将 Java 对象与 JSON 字符串进行转换,存储于 Redis 时是 JSON,取出来时转换为 Java 对象。
该类是用于设置 RedisTemplate 的序列化器时一般这样配置:
1 | private RedisTemplate<Object, Object> createGenericRedisTemplate(RedisConnectionFactory redisConnectionFactory) { |
这个配置一般用起来是没问题的,但很快你会发现一些理所当然的配置会不生效。
@EnableWebMvc
注解并不是像一般理解的那样在 Spring Boot 中使用 Spring MVC 必需要有的配置,而且并不是像字面意思那样启用 Spring MVC 的
功能。
@EnableWebMvc
的作用是引入 DelegatingWebMvcConfiguration
类来支持通过 WebMvcConfigurer
来对 WebMvc 进行配置。但其引入 DelegatingWebMvcConfiguration
的结果是导致 Spring MVC 相关的自动配置功能失效。
得益于 Spring Boot 约定大于配置的特性,集成 Websocket 非常简单,只需在依赖中加入对应的 starter 就可完成引入。
1 | <dependency> |
加入 starter 后,websocket 已经完成引入,这时可以使用 @Configuration 类来配置,然后使用 @EnableWebSocketMessageBroker
来启用 WS。
如果单纯想看什么磁盘挂到了什么目录,什么文件系统
1 | mount |
如果想看磁盘容量等信息,可以使用 df 命令。
1 | df -h |