- 博客(23)
- 收藏
- 关注
原创 六、G1垃圾收集器
G1垃圾处理器使用范围:服务器拥有多个服务器,大内存;G1:将JVM堆划分为大小相等的region,最多有2048个reqion,region的角色是变化;可能显示是Eden区域,一次垃圾回收之后就是Old区域了。年轻代默认占比5%,由参数-XX:G1NewSizePercent指定;年轻代最大占比不超过60%,由参数-XX:G1MaxNewSizePercent指定;G1的特殊之处之一是对大对象的处理:大对象就是上图中显示的H区域,H区域判断条件是一个对象的大小>region的一半。举
2020-06-30 17:47:39 520 1
原创 springmvc源码01——servlet请求过程
servlet的请求过程符合MVC架构,其中:jsp表示View;设置数据表示model;servlet表示contrillor;springmvc其实是基于servlet架构的!
2020-06-27 16:26:32 224
原创 spring源码10——AbstractAutoProxyCreator.postProcessAfterInitialization
根据配置的拦截器创建一个代理/** * Create a proxy with the configured interceptors if the bean is * identified as one to proxy by the subclass. * @see #getAdvicesAndAdvisorsForBean */@Overridepublic Object postProcessAfterInitialization(@Nullable Object bean, Stri
2020-06-24 18:50:54 396
原创 spring源码09——AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization
applyBeanPostProcessorsAfterInitialization就是在bean初始化之后,执行的方法。public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException { Object result = existingBean; //获取所有的BeanPostProcessors进行遍历
2020-06-24 09:24:08 345
原创 spring源码08——finishBeanFactoryInitialization(beanFactory)
调用链:finishBeanFactoryInitialization(beanFactory)---->DefaultListableBeanFactory.preInstantiateSingletons();类名:DefaultListableBeanFactory对符合条件的bean进行初始化,条件就是:非抽象的,单实例的,非懒加载的public void preInstantiateSingletons() throws BeansException { if (
2020-06-24 08:38:23 252
原创 Java基础——lambda表达式
使用lambda表达式可以简化我们的代码,但是该表达式的使用有个前提:实现接口方法,并且该接口中只有一个方法。语法形式:(parameters) -> expression(parameters) -> {statements;}基本用法1、定义两个接口类,只有一个方法package com.company;/** * @author * @date 2020/6/23 */public interface MathOperation { int opera
2020-06-24 08:20:50 473
原创 spring源码07——AbstractAutowireCapableBeanFactory.initializeBean
类名:AbstractAutowireCapableBeanFactory#initializeBean protected Object initializeBean(final String beanName, final Object bean, RootBeanDefinition mbd) { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new Privi
2020-06-16 20:09:43 579
原创 spring源码06——AbstractAutowireCapableBeanFactory.doCreateBean
类名:AbstractAutowireCapableBeanFactory protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, Object[] args) { BeanWrapper instanceWrapper = null; if (mbd.isSingleton()) { instanceWrapper = (BeanWrapp
2020-06-16 20:02:23 368
原创 spring源码05——AbstractBeanFactory.doGetBean
类名:AbstractBeanFactoryprotected <T> T doGetBean(String name, Class<T> requiredType, final Object[] args, boolean typeCheckOnly) throws BeansException { //格式化名称 final String beanName = this.transformedBeanName(name); //尝试从缓存中获取Bean,
2020-06-16 19:51:08 643
原创 spring源码04——AbstractApplicationContext.registerBeanPostProcessors
类名:AbstractApplicationContextprotected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) { //先获取容器所有的BeanPostProcessor String[] postProcessorNames = beanFactory.getBeanNamesForType(BeanPostProcessor.class, true, false)
2020-06-16 19:06:04 284
原创 spring源码03——AbstractApplicationContext.refresh()
类名:AbstractApplicationContextpublic void refresh() throws BeansException, IllegalStateException { synchronized(this.startupShutdownMonitor) { this.prepareRefresh(); ConfigurableListableBeanFactory beanFactory = this.obtainF
2020-06-16 17:58:22 361
原创 spring源码01——AnnotationConfigApplicationContext
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Test.class)类名:AnnotationConfigApplicationContext public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); this.registe
2020-06-16 13:59:39 257
原创 spring源码02——registerBean源码解析
类名:AnnotatedBeanDefinitionReaderregisterBean(java.lang.Class<?>, java.lang.String, java.lang.Class<? extends java.lang.annotation.Annotation>…)public void registerBean(Class<?> annotatedClass, String name, Class<? extends Annotation&
2020-06-16 12:05:13 959
原创 loggger.error的正确使用姿势
logger.error有两个重载的方法:public void error(String msg);public void error(String msg, Throwable t);第一个方法只有一个String类型的参数;第二个方法两个参数,一个String类型,一个Throwable类型错误的使用姿势logger.error(e);logger.error(e.getMessage);logger.error("错误信息:" + e);默认会调用String参数的方法,将e转
2020-06-15 09:44:30 2784 1
原创 Spring使用——AOP功能测试
基本使用步骤配置类package com.ysy.config;import com.ysy.aop.LogAspect;import com.ysy.aop.MathCalculator;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annota
2020-06-11 23:42:33 440
原创 Spring使用——读取properties配置文件
配置类package com.ysy.config;import com.ysy.Person;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;/**@author shanyangyang@dat
2020-06-11 22:44:14 446
原创 Spring使用——@Profile使用
配置类package com.ysy.config;import com.ysy.bean.DataSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;/** * @author shanyangyan
2020-06-11 22:39:56 363
原创 Spring使用——自动注入
配置类package com.ysy.config;import com.ysy.Dao.BookDao;import com.ysy.bean.Car;import com.ysy.bean.Color;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context
2020-06-11 22:37:04 269
原创 Spring使用——bean生命周期
配置类package com.ysy.config;import com.ysy.bean.Car;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * @author shanyangyang
2020-06-11 22:33:22 271
原创 Spring使用——给容器注册组件
配置类/**给容器注册组件:1)包扫描+组件标注注解(@Controller,@Service,@Component,@Repository)[局限:自己写的]2)@Bean [导入的第三方包里面的组件]3)@Import[快速的给容器中导入组件]1)@Import(要导入到容器中的组件),容器中就会自动注册这个组件,id默认是全类名2)@ImportSelecor:返回需要导入的组件的全类名的数组3)ImportBeanDefinitionRegistrar:手动注册bean到容器中4
2020-06-11 22:25:29 265
原创 Spring使用——通过配置类注入Bean
配置类@Configuration //告诉spring这是一个配置类@ComponentScanvalue指定要扫描的包Filter[] excludeFilters() default {}; 扫描的时候按照规则排除哪些@ComponentScan(value = "com.ysy",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = {Controller.class,Service
2020-06-10 22:57:38 1623
原创 Linux系统中查找文件
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。它的格式为”find <指定目录> <指定条件> <指定动作>“;比如使用find命令搜索在根目录下的所有名为ysy文件所在位置命令格式为:find / -name "ysy"(2) grep 是根据文件内容进行查找,会对文件的每一行按照给定的模式
2020-06-01 19:17:15 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人