工具说明
- jinfo:可以输出并修改运行时的java 进程的opts。
- jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
- jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
- jmap:打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量)。
JPS
Java版的ps命令,查看java进程及其相关的信息,如果你想找到一个java进程的pid,那可以用jps命令替代linux中的ps命令了,简单而方便。
写在前面,本文先讲解一下springboot实现得starter组件机制,然后基于此原理实现一个自定义格式化日期starter组件,本文将从一下几方面开始:
- 为什么要使用starter小组件
- 常见的一些starter场景
- Mybatis-starter定义分析
- 开发starter组件的要素
- 实现日期格式化starter小组件
为什么使用starter组件
早期开发spring项目中,比如需要引入ORM框架,通常需要做以下三个步骤:
- 到maven仓库去找需要引入的mybatis jar包,选取合适的版本。
- 到maven仓库去找mybatis-spring整合的jar包,选取合适的版本。
- 在spring的applicationContext.xml文件中配置dataSource和mybatis相关信息。
1、Service介绍
https://www.jianshu.com/p/4b16c995990b
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,如果pod挂掉或者重启后,其ip会发生变化,也就意味着每次pod重启后都需要手工更换ip去访问应用程序。
为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址,一个固定的ip地址。通过访问Service的入口地址就能访问到后面的pod服务,即使pod发生重启或者删除,用户也不需更换service ip。对用户来说service ip是不变的,用户无法感知pod ip地址。
k8s授权简介
Kubernetes 主要通过 API Server 对外提供服务,Kubernetes 对于访问 API 的用户提供了相应的安全控制:认证和授权。认证解决用户是谁的问题,授权解决用户能做什么的问题。只有通过合理的权限控制,才能够保证整个集群系统的安全可靠。
下图是 API 访问需要经过的三个步骤,它们分别是:认证、授权和准入。
一、MyBatis
1、MyBatis简介
1.1、MyBatis历史
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。
iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
1、@SpringBoot注解
我们可以把 @SpringBootApplication
看作是 @Configuration
、@EnableAutoConfiguration
、@ComponentScan
注解的集合。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {}