• springboot 底层点的知识


    不断提高代码质量
        从大的方面来讲,可以从这几个方面,不断提高自己的编程能力:
    		1、编码之前需要做一定的设计,主要考虑:耦合度,拓展性,复用度
    		2、熟悉类库,熟悉API,避免自己造轮子
    		3、阅读优秀源码并加以实践
    		4、参考一些已有的最佳实践,代码片段,但是避免复制粘贴
    		5、多考虑一些细节、边界、异常场景
    		6、保持代码的整洁,包括类、方法、变量的命名
    		7、在I/O操作多考虑性能问题,重要信息多考虑安全问题
    
    springboot 重难点?
    	1、零配置
    	2、starter插件式解耦
    	
    
    参考:
    	https://blog.csdn.net/woshilijiuyi/article/details/82219585
    	
    
    
    what?
    
    how?
    
    why?
    	一、启动流程
    		1、入口:SpringApplication.run();
    		2、初始化回调接口:ApplicationContextInitializer
    		   监听器接口:ApplicationListener
    		3、springboot扩展方式:SPI(Service Provider Interface)(参考:https://www.jianshu.com/p/0d196ad23915)
    			3.1、目录为:META-INF/spring.factories
    			3.2、配置方式:接口名称=实现类
    			3.3、根据“接口名称”获取对应的实现类,然后装载到内存中。
    	
    		4、启动流程步骤
    			4.1、获取并启动监听器
    			4.2、构造容器环境
    			4.3、创建容器
    			4.4、实例化springBootExceptionReporter,springboot错我报告。
    			4.5、准备容器
    			4.6、刷新容器
    			4.7、刷新容器后的扩展接口
    			
    	二、自动化配置流程(重点)
    		1、入口:@SpringBootApplication
    		2、自动装配:spring.factories 里面的:org.springframework.boot.autoconfigure.EnableAutoConfiguration
    	
    	三、环境(Environment)
    		1、Environment是 spring 为运行环境提供的高度抽象接口,项目运行中的所有相关配置都基于此接口。springboot对此接口做了扩展。spring Cloud的配置文件,
    		在springboot解析逻辑之前,添加了bootstrap配置。
    		2、加载环境配置
    		3、触发环境监听器,加载项目在的配置文件。
    			3.1、判断是否指定了:profile
    			3.2、加载application.yml/application.properties
    			3.3、注意配置文件的位置,以及生效的优先级。
    
    	四、自定义AutoConfiguration|自定义starter
    		1、自定义starter
    			1.1、创建一个项目
    			1.2、配置类添加注解:
    				A:@Configuration,@ConditionalOnproperty
    				B:类名:CqcStarterAutoConfiguration
    				C:项目路径下添加文件:resources/META-INF/spring.factories
    				D:内容为:org.springframework.boot.autoconfigure.EnableAutoConfiguration=CqcStarterAutoConfiguration类的全限定名。
    			1.3、在需要的项目中,dependency 对应的maven坐标。
    		2、判定一个jar是否需要引入springboot的依据是:
    			1、@Conditional
    			2、@ConditionalOnProperty
    
    	五、监听器,自定义ApplicationListener
    		1、SimpleApplicationListener implements GenericApplicationListener,ApplicationListener<ApplicationEvent>
    		2、重写:onApplicationEvent 方法。
    
    	六、条件注解:@ConditionalOnBean
    		1、spring ioc 的过程中,优先解析:@Component,@Service,@Controller注解的类,再解析@Configuration的类。
    		2、@ConditionalOnClass
    		3、@AutoConfigureBefore,@AutoConfigureAfter,@AutoConfigureOrder 控制先后顺序。
    	缺:
    		后面章节
    		
    	
    

      

  • 相关阅读:
    Dynamics CRM中的地址知多D?
    配置基于服务器认证的Dynamics 365 Customer Engagement和SharePoint Online集成
    Dynamics 365利用Web API对视图进行查询
    Dynamics 365中的公告(Post)分析
    嵌入Canvas App到Dynamics 365 Customer Engagement(Model-Driven App)中,创造更多可能!
    Dynamics 365中开发和注册插件介绍
    Dynamics 365客户端编程示例:获取当前用户的信息,表单级通知/提示,表单OnLoad事件执行代码
    Dynamics 365客户端编程示例:两个选项集字段的联动
    利用ExecuteMultipleRequest来批量导入数据,成功的成功失败的失败,并生成导入结果文件
    Dynamics 365中使用计算字段自动编号字段实时工作流自动生成分组编码加流水号的自动编号字段值
  • 原文地址:https://www.cnblogs.com/chen--biao/p/12890440.html
Copyright © 2020-2023  润新知