上下文

Flask基础

眉间皱痕 提交于 2019-12-10 09:58:39
Flask基础 Flask与Django区别 Flask - 微框架、灵活、扩展性强、按需组合 Django - 大而全、开箱即用、方便、灵活稍差 Flask主要包含 * Web服务器网关接口 Werkzeug (WSGI Web Server Gateway Interface) * 模板系统 Jinja2 其他包可自行扩展 安装和运行 (虚拟环境) mkdir src python3 -m venv venv source venv/bin/activate pip install flask 简单的例子 hello.py from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>你好未来</h1>' @app.route('/user/<name>') def user(name): return '<h2>你好啊, %s</h2>' % name if __name__ == '__main__': app.run(debug=True) # app.run(debug=True, host='0.0.0.0', port=5001) 程序上下文和请求上下文 context Flask使用上下文让特定的变量只在一个线程中全局可访问,与此同时不会干扰其他其他线程

分布式架构设计

自古美人都是妖i 提交于 2019-12-10 04:17:25
分布式架构设计 1.分布式架构的基本理论 2.SOA架构和微服务架构 3.领域驱动设计及业务驱动划分 ==================================== 一. 分布式架构的基本理论 1.CAP理论 一个经典的分布式系统理论。CAP 理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项。 一致性(Consistency) 所有节点上的数据必须时刻保持一致 可用性(Availability) 可用性是指服务一直可用,而且是正常的响应时间 分区容错性(Partition tolerance) 系统应该持续提供服务,即时系统内部(某个节点分区)有消息丢失。比如交换机失败、网址网络被分成几个子网,形成脑裂;服务器发生网络延迟或死机,导致某些 server 与集群中的其他机器失去联系 总结: CAP 并不是一个普适性原理和指导思想,它仅适用于原子读写的 NoSql 场景中,并不适用于数据库系统。 2.BASE理论 从前面的分析中知道:在分布式(数据库分片或分库存在的多个实例上)系统下,CAP 理论并不适合数据库事务(因为更新一些错误的数据而导致的失败,无论使用什么样的高可用方案都是徒劳

Spring Boot注解学习之@SpringBootApplication(一)

假如想象 提交于 2019-12-10 01:39:07
文章目录 @SpringBootApplication @Configuration @Configuration 加载 Spring 方法 1、@Configuration 配置 Spring 并启动 Spring 容器 2、@Configuration 启动容器+@Bean 注册 bean 3、@Configuration 启动容器+@Component 注册 Bean 4、使用 AnnotationConfigApplicationContext 注册 AppContext 类的两种方法 5、配置 Web 应用程序(web.xml中配置 AnnotationConfigApplicationContext) 组合多个配置类 在@configuration 中引入 spring 的 xml 配置文件 在@configuration中引入其它注解配置 @configuration 嵌套(嵌套的 Configuration 必须是静态类) @EnableAutoConfiguration AutoConfigurationImportSelector @SpringBootApplication 在使用 Springboot 框架进行开发的时候,通常我们会在 main 函数上添加 @SpringBootApplication 注解 ,来使应用程序能够自动配置、组件扫描。

SpringMVC之自动注入Request对象

安稳与你 提交于 2019-12-09 02:31:42
前几天看了领导写的一段代码,在Controller中注入了HttpServletRequest,形式如下所示: @RestController public class AutowiredRequestController { @Autowired private HttpServletRequest request; } 当时看到了这一段代码,首先想到的是AutowiredRequestController是一个singleton的bean,HttpServletRequest是一个变化的共享变量,每个请求对象都是不一样的,这样写不会有线程安全问题吗?带着疑问去翻了翻SpringMVC的源码,结论是:不会有线程安全问题!!!不会有线程安全问题!!!!不会有线程安全问题!!!下面我们来分析一下: 在前面的文章中我们简单的分析过SpringMVC的上下文初始化过程( SpringMVC之浅析上下文初始化(一) 和 SpringMVC之浅析上下文初始化(二) ),SpringMVC环境中的父上下文时:XmlWebApplicationContext。下面我们先看一下XmlWebApplicationContext的UML类图(去掉了一些暂时无关的): 之前也说过会调用AbstractApplicationContext中的refresh方法进行Bean的组装初始化的过程

堆叠上下文

本小妞迷上赌 提交于 2019-12-07 19:00:28
堆叠上下文 堆叠上下文的排列规则,越往下显示比重越高 创建堆叠上下文的元素的背景和边框 堆叠级别为负值的堆叠上下文 常规流非定位块盒 非定位的浮动盒子 常规流非定位行盒 任何z-index为auto的定位子元素,以及z-index是0的堆叠上下文 堆叠级别为正值的堆叠上下文 每个堆叠上下文互相独立,不能相互穿插 来源: https://www.cnblogs.com/tujw/p/12002959.html

docker镜像构建

允我心安 提交于 2019-12-07 14:34:26
1. Dockerfile文件内容 2. docker build 命令进行镜像构建。其格式为: docker build [选项] <上下文路径/URL/-> 3. Dockerfile上下文 4. 获取当前ip [im@VM_0_2_centos ~/myip]$ curl -s http://ip.cn 当前 IP:192.144.168.119 来自:北京市 腾讯 5. 镜像保存 来源: CSDN 作者: 星光001 链接: https://blog.csdn.net/u014042372/article/details/80831490

dockerfile文件中copy上下文目录

时光怂恿深爱的人放手 提交于 2019-12-07 13:58:07
COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。 <目标路径> 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 WORKDIR 指令来指定)。 目标路径不需要事先创建,如果目录不存在会在复制文件前先行 创建缺失目录。 COPY <源路径>... <目标路径> COPY ["<源路径1>",... "<目标路径>"] 正确: COPY ./package.json /app/ COPY package.json /usr/src/app/ 错误: COPY ../package.json /app 或者 COPY /opt/xxxx /app 注意: 此外,还需要注意一点,使用 COPY 指令,源文件的各种元数据都会保留。比如读、写、执 行权限、文件变更时间等。 来源: CSDN 作者: JackLiu16 链接: https://blog.csdn.net/JackLiu16/article/details/79365629

hibernate.current_session_context_class属性配置

岁酱吖の 提交于 2019-12-07 10:53:45
此设置的作用如下: What does sessionFactory.getCurrentSession() do? First, you can call it as many times and anywhere you like, once you get hold of your SessionFactory (easy thanks to HibernateUtil). The getCurrentSession() method always returns the "current" unit of work. Remember that we switched the configuration option for this mechanism to "thread" in hibernate.cfg.xml? Hence, the scope of the current unit of work is the current Java thread that executes our application. However, this is not the full truth. A Session begins when it is first needed, when the first call to getCurrentSession() is

spring事务管理错误createSQLQuery is not valid without active transaction

六眼飞鱼酱① 提交于 2019-12-07 10:53:35
网上扒的,很管用,自己就借此发一下,方便以后看。。。。。。。 原文网址 http://blog.csdn.net/yinjian520/article/details/8666695 很多时候我们使用hibernate的session时,都是让session在某一运行环境中保持其唯一。例如在同一线程内用同一个session,在同一方法内用同一session,这样我们就可以用session里面缓存好的数据。但,我想说的不是缓存,且听我一一道来。 最近试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个相当郁闷的问题。就是我明明配置好了spring管理hibernate事务了, 当我在dao中执行hibernate的方法时,如save,delete,update,createQuery,总是说不能在没有活动的事务中执行(org.hibernate.HibernateException: createSQLQuery is not valid without active transaction)。 立马上google查,一无所获。曾几度怀疑是否配置写出了,dao或service写错了,改来改去的依旧存在问题。当时相当郁闷啊,想啊,你spring不是帮我管理事务么?你不自动开启事务啊,还要我手动开启啊。立马查spring文档

转:领域驱动设计简单落地实现

我怕爱的太早我们不能终老 提交于 2019-12-06 19:12:26
from: https://blog.csdn.net/ityouknow/article/details/81572072 领域驱动设计的概念 大家都知道软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前通常需要进行大量的业务知识梳理,然后才能到软件设计的层面,最后才是开发。而在业务知识梳理的过程中,必然会形成某个领域知识,根据领域知识来一步步驱动软件设计,就是领域驱动设计(DDD,Domain-Driven Design)的基本概念 。 为什么需要 DDD 在业务初期,功能大都非常简单,普通的 CRUD 就基本能满足要求,此时系统是清晰的。但随着产品的不断迭代和演化,业务逻辑变得越来越复杂,我们的系统也越来越冗杂。各个模块之间彼此关联,甚至到后期连相应的开发者都很难说清模块的具体功能和意图到底是啥。这就会导致在想要修改一个功能时,要追溯到这个功能需要修改的点就要很长时间,更别提修改带来的不可预知的影响面。 比如下图所示: 订单服务中提供了查询、创建订单相关的接口,也提供了订单评价、支付的接口。同时订单表是个大表,包含了非常多字段。我们在维护代码时,将会导致牵一发而动全身,很可能原本我们只是想改下评价相关的功能,却影响到了创建订单的核心流程。虽然我们可以通过测试来保证功能的完备性