context

SpringBoot启动原理详解

試著忘記壹切 提交于 2020-01-31 22:48:42
一,本篇来说说SpringBoot的启动原理 打开启动类,调试进入可以发现SpirngBoot的启动分为两部分: 1创建SpringApplication对象 2运行Run方法 public static ConfigurableApplicationContext run ( Class < ? > [ ] primarySources , String [ ] args ) { return ( new SpringApplication ( primarySources ) ) . run ( args ) ; } 先从创建对象讲起 public SpringApplication ( ResourceLoader resourceLoader , Class < ? > . . . primarySources ) { this . sources = new LinkedHashSet ( ) ; this . bannerMode = Mode . CONSOLE ; this . logStartupInfo = true ; this . addCommandLineProperties = true ; this . addConversionService = true ; this . headless = true ; this .

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-31 22:46:46
最近在学习web相关的库,编写demo运行后会出现ssl:certificate_verify_failed这个问题,错误日志如下: ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056) urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)> 产生这个问题的原因在于python本身,pyhon升级到2.7.9以后,引入了一个新特性,当使用urllib打开https的链接时,会检验一次ssl证书。而当目标网站使用的是自签名证书时,就会抛出urllib.URLError的错误。 解决方案如下两种方式: 1、全局取消证书验证 import ssl ssl . _create_default_https_context = ssl . _create_unverified_context 全局取消证书的验证,简易方便

Spring 核心容器 IOC

跟風遠走 提交于 2020-01-31 22:34:39
目录 1. BeanFactory 2. BeanDefinition 3、BeanDefinitionReader 4 . Web IOC 容器初体验 一 、BeanFactory Spring Bean 的创建是典型的工厂模式,这一系列的 Bean 工厂,也即 IOC 容器为开发者管理对象 间的依赖关系提供了很多便利和基础服务。最基本的 IOC 容器接口 BeanFactory,来看一下它的源码: public interface BeanFactory { //对 FactoryBean 的转义定义,因为如果使用 bean 的名字检索 FactoryBean 得到的对象是工厂生成的对象, //如果需要得到工厂本身,需要转义 String FACTORY_BEAN_PREFIX = "&"; //根据 bean 的名字,获取在 IOC 容器中得到 bean 实例 Object getBean(String name) throws BeansException; //根据 bean 的名字和 Class 类型来得到 bean 实例,增加了类型安全验证机制。 <T> T getBean(String name, @Nullable Class<T> requiredType) throws BeansException; Object getBean(String name,

SSM_框架整合(IDEA)

痞子三分冷 提交于 2020-01-31 13:42:14
SSM_框架整合(IDEA) 1. 配置文件 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="spring-dao.xml"/> <import resource="spring-service.xml"/> <import resource="spring-mvc.xml"/> </beans> 数据库 Mysql 8.0 database.properties jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/runoob?useSSL=true&useUnicode=true

Spring - 基于注解创建bean

瘦欲@ 提交于 2020-01-31 09:28:21
1. 介绍 之前我们写的bean都是基于xml配置,而这文章是基于java 注解去实现创建bean,首先我们需要在之前的xml当中添加两个dtd xmlns:context 和 xsi:schemaLocation <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> </beans> 2.配置

【EF】Entity Framework Core 软删除与查询过滤器

元气小坏坏 提交于 2020-01-31 06:08:13
本文翻译自 《Entity Framework Core: Soft Delete using Query Filters》 ,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能存在变动。 继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除)。我的意思是以透明的方式实现软删除,例如,您是物理上的删除行。 要实现软删除,您需要添加一列以指示该行数据是否被逻辑删除。如果您想知道该行被删除,可以使用布尔列,如果您想知道删除的时间,可以使用日期列。其次是更改所有查询,使用此列过滤结果集;您还需要将删除语句替换成为更新语句。 现在我们来看看如何用 Entity Framework Core 来实现这两件事! 添加IsDeleted列 实体框架核心提供了非常灵活的映射。在上一篇关于 跟踪列 ( 英文原文 )的博客中,您将找到映射列的3种方法。在介绍中,我已经说过软删除应该是透明的,所以我决定在类型中不暴露 IsDeleted 属性。类型定义如下: public class Blog { public int BlogId { get; set; } public string Url { get;

Spring aop练手

本小妞迷上赌 提交于 2020-01-31 05:50:24
applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www

Go语言常用标准库之context

北战南征 提交于 2020-01-31 05:27:50
介绍 Context专门用来简化 对于处理单个请求的多个 goroutine 之间与请求域的数据、取消信号、截止时间等相关操作 示例一: 其实ctx.Done()就是一个只读的结构体Done() <-chan struct{} var wg sync.WaitGroup func f(ctx context.Context) { defer wg.Done() LOOP: for { fmt.Println("wait") time.Sleep(time.Millisecond * 500) select { case <-ctx.Done(): break LOOP default: } } } func main() { ctx, cancel := context.WithCancel(context.Background()) wg.Add(1) go f(ctx) time.Sleep(time.Second * 5) cancel() wg.Wait() } 示例二: 只要是调用的同一个ctx,那当主ctx通知关闭,那其子孙等都关闭 var wg sync.WaitGroup func f1(ctx context.Context) { defer wg.Done() go f2(ctx) LOOP: for { fmt.Println("wait f1") time

spring5学习系列之------3 给容器注册组件三 @Conditional 和 @Import 注解用法

懵懂的女人 提交于 2020-01-31 02:02:57
前文主要介绍了@bean @ComponentScan 扫包注入两种方式,今天介绍一下@Conditional按照条件注入和@import导入组件的相关用法 1 首先是@Conditional的用法:按照一定的条件进行判断,满足条件给容器中注册bean,之前是写了@bean注解就会注入,但是在bean上加了@Conditional注解,并不一定就会注入了,而是进行条件判断之后再说, 该注解在springboot源码中大量用到,该注解是在spring4.0引入的。 首先我们创建一个Config,并且在里面注册2个person的Bean其中一个为windows另外一个为linux,使用@ Conditional注解来判断当前操作系统是windows还是linux分别加载不同的bean,见下图: package com.study.chap4.conditional.config; import com.study.chap4.conditional.Person; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation

如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

人走茶凉 提交于 2020-01-30 22:14:19
这是Serilog系列的第三篇文章。 第1部分-使用Serilog RequestLogging减少日志详细程度 第2部分-使用Serilog记录所选的终结点属性 第3部分-使用Serilog.AspNetCore记录MVC属性(本文) 第4部分-从Serilog请求记录中排除运行状况检查端点 作者:依乐祝 译文地址: https://www.cnblogs.com/yilezhu/p/12243984.html 原文地址: https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-logging-mvc-propertis-with-serilog/ 在我 上篇文章 中,我描述了如何配置Serilog的RequestLogging中间件以向Serilog的请求日志摘要中添加其他属性(例如请求主机名或选定的端点名称)。这些属性都在 HttpContext 中可用,因此可以由中间件本身直接添加。 其他属性,例如MVC特定的功能,像操作方法ID,RazorPages处理程序名称或ModelValidationState, 仅 在MVC上下文中可用,因此Serilog的中间件不能直接访问。 在本文中,我将展示如何创建 action/page 过滤器来为您记录这些属性,以便中间件可以在后续创建日志时访问。