SpringBoot 启动时实现自动执行
摘要:有时启动 springboot 项目后需要执行一些方法初始化,如资源加载、数据准备等,首先不能放在 main 方法中 SpringApplication.run()之前,因为此时 bean 还未初始化,除非你不使用 bean,当然也不能放其后,因为 run 方法执行后启动 tomcat 会阻塞在端口监听,run 方法后的代码不会执行。
摘要:有时启动 springboot 项目后需要执行一些方法初始化,如资源加载、数据准备等,首先不能放在 main 方法中 SpringApplication.run()之前,因为此时 bean 还未初始化,除非你不使用 bean,当然也不能放其后,因为 run 方法执行后启动 tomcat 会阻塞在端口监听,run 方法后的代码不会执行。
摘要:这是最近学习的一些成果,预计会有十几篇文章,我准备用通俗有趣的语言把它分享给你,让你学习 Neety 变的 Easy,敬请期待。
当我们打开 Netty 官网,会看到一个赫然的标题。
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
译文:Netty 是一个异步事件驱动网络编程框架,用于快速开发可维护的高性能协议服务器和客户端。
从中我们提取一些重点:异步、事件驱动、协议、服务器和客户端。
没错,这就是 Netty 的特点,基于 Reactor 线程模型异步能力,基于 epoll 处理 IO 的能力,内置了许多协议处理器和编解码器,只需要简单配置,就能实现高性能的服务器-客户端应用。
Netty 发展十几年,Java 生态许多高性能的中间件都是用了它,例如:Apache Flink、Apache Spark、Elastic Search 等,这说明 Netty 是优良网络编程框架。
摘要:业务系统中难免要记录敏感操作,可以通过硬编码或者简单注解实现,但是都不够优雅,今天分享一个自己写的日志工具。
这是参考美团的一篇文章所实现的日志工具,能够灵活地记录操作日志,并且具有较好的扩展性,欢迎尝鲜。下面是这个工具的介绍和使用教程。
代码仓库:https://github.com/elltor/oplog
dubbo、zookeeper 是常用的分布式服务治理服务协调框架,dubbo 是常用 RPC 框架,使用简单易上手,dubbo 除了具有 RPC 功能外还有服务注册服务发现的功能(尽管用的不多),zookeeper 是 Hadoop 开源项目下的一个子项目,常用来作为服务的注册中心,另外 zookeeper 也可以用来做分布式锁。
这篇文章的主要内容如下:
Spring 两个核心就是 IOC(Invest of Control)容器和面向切面编程 AOP。
IOC 是 spring 的 bean 容器,IOC 帮我们项目管理的 bean 的创建和依赖管理,在使用的时候我们只需要使用 xml 或注解指明依赖的对象,剩下的 IOC 会帮我管理。IOC 实现的核心是依赖注入,在初始化 bean 时往往一个对象依赖另一个对象,spring 帮我自动创建依赖对象并把它注入到对象中。IOC 中的对象可以是单例或多例的,但多数是单例的,例如@Service 和@Controller 注解就是单例的对象。通过在 IOC 提前创建好对象,提高了程序的运行速度。
Spring 的另一个核心是 AOP 切面编程,在程序的开发过程中,难免会有大量重复的代码,例如事务的开启和关闭,打印日志等,我们可以把重复的代码提取出来,利用 AOP 技术复用这些代码,这些操作通常在方法执行前可以执行或执行后可以执行。AOP 实现是基于就动态代理的设计思想来实现的,基于 JDK Proxy 或 cglib,选择的依据是对象(代理的方法)是否是实现接口的,对象实现了接口就用 JDK 动态代理,否则就是用 cglib 通过继承的方式实现代理。
Hadoop 学习总结。
在使用 swagger 的时候有些注解没有正确使用会导致测试时不方便,导致测试时连数据都传入不到后端,或者 swagger 界面的接口显示了错误的输入组件,这些都是 swagger 的 Comtroller 注解使用的一些细节没有注意到,这篇文章主要针对这方面的注解进行总结,或许能解决使用 swagger 的一些小诟病。
Spring 的核心是 Ioc 容器和 DI(Dependence Injection)思想,这些提供了 java 对象的管理以及他们之间依赖的管理。bean 的管理是 Spring 自动管理的,而我们只需要使用一些注解(Annotion)。
常用的是 @Resource 和 @Autowired 以及 lambok 的构造器进行注入。