Springboot自动配置
1. 入口注解 @SpringBootApplication@SpringBootApplication 是一个组合注解,它包含了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan 三个重要注解。其中,@EnableAutoConfiguration 是开启自动配置的关键。
1234567891011@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationE ...
SpringCloud微服务架构演进
Spring Cloud是基于Spring Boot的,因此还在使用SpringMVC的同学要先了解Spring Boot。先上一段官话,Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发框架。
Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud全家桶 上面的图是Spring Cloud的全家桶,包罗万象,犹如水电,涉及到开发的方方页面。
Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
首先是核心服务治理的组件(服务注册与发现)Spring Cloud Eureka ...
java逆向安全之反编译jar和jar加密
反编译class
1234567891011121314151617@echo offecho %1set clasPath=%1for /f "tokens=4* delims=\" %%a in ("%clasPath%") do ( ::输出第一个分段(令牌) echo %%a java -jar .\tools\cfr-0.152.jar %1 java -jar .\tools\cfr-0.152.jar %1 > %%a.java)::if "%1"=="" ( echo Please enter [class file name] or [jar package path and outputdir path] ) ^::else if "%2"=="" (java -jar .\tools\cfr-0.152.jar %1) ^::else ( java -jar .\tools\cfr-0.152.jar %1 --outputdi ...
Spring源码解析
一.IOC源码深度剖析1.一般第一步都是加载xml文件,创建一个ApplicationContext容器
123456public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); TestBean testBean = (TestBean) applicationContext.getBean("testBean"); testBean.print();}
2.进入 new ClassPathXmlApplicationContext(“classpath:applicationContext.xml”)这个构造方法;
123456789101112public ClassPathXmlApplicationContext( String[] configLocat ...
Springboot启动流程
Spring Boot 启动流程主要包含一系列初始化、配置加载和上下文创建等操作,以下为你详细介绍各个阶段:
1. 启动入口Spring Boot 应用启动的入口是 SpringApplication.run 方法,一般在 main 方法中调用,示例代码如下:
123456789import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); }}
2. 创建 SpringApplication 实例SpringApplication.run 方法内部会创建 SpringA ...
Spring Bean的生命周期
Spring Bean 的生命周期包含了从创建到销毁的整个过程,主要包括实例化、属性赋值、初始化和销毁等阶段。下面将结合源码对其生命周期进行详细解析。
源码解析1. 实例化 Bean在 AbstractAutowireCapableBeanFactory 类的 createBeanInstance 方法中完成 Bean 的实例化。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) { // 解析 Bean 的类 Class<?> beanClass = resolveBeanClass(mbd, beanName); if (beanClass != null && !Modifier.isPu ...