- 博客(125)
- 收藏
- 关注
原创 第5章 OpenFeign服务接口调用
Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。Feign集成了Ribbon,利用Ribbon维护了Payment的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是,通过feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。
2023-05-06 15:28:21
685
原创 第4章 Ribbon负载均衡服务调用
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
2023-04-20 09:01:25
655
原创 第3章 Eureka、Zookeeper、Consul服务注册中心
什么是服务治理:Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现:Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心。
2023-04-13 09:28:02
637
原创 第1章 微服务架构简介
什么是微服务架构:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
2023-04-08 11:00:31
590
原创 第五章 事务管理
第二步:创建service、dao、对象创建和关系注入,在dao里创建多钱和少钱的方法,在service里创建转账的方法。timeout:超时时间,事务需要在一定时间内进行提交,如果不提交则回滚,默认值是-1,设置时间以秒为单位进行计算。在spring配置文件配置事务管理器,引入tx名称空间,开启事务注解,在service类或方法上面添加事务注解。*什么是事务:事务是数据库操作最基本单元,逻辑上是一组操作,要么都成功,要么都失败。当一个事务方法被另外一个事务方法调用时候,这个事务方法如何执行。
2023-03-06 19:16:04
349
原创 5.SpringSecurity跨域
第一步:写WebMvcConfigurer实现类配置跨域。第二步:在SpringSecurity中开启跨域。
2023-03-06 19:10:33
105
原创 4.SpringSecurity自定义失败提示信息
在SpringSecurity中,如果在认证或授权的过程中出现了异常,则会被ExceptionTranslationFilter捕获到,ExceptionTranslationFilter会判断是认证失败还是授权失败。*如果是认证过程中出现的异常,会被封装成AuthenticationException,然后调用AuthenticationEntryPoint对象的方法去进行异常处理。第一步:创建AuthenticationEntryPoint的实现类和AccessDeniedHandler的实现类。
2023-03-06 19:06:52
599
原创 2.SpringSecurity认证+3.SpringSecurity授权
*源码流程: *自定义认证流程: *校验流程: *认证和校验连接:*登录:自定义登录接口,调用ProviderManager的方法进行认证à自定义UserDetilService,在这个实现类中查询数据库 如果认证通过,则生成jwt,并把用户信息存到redis中*校验: 定义jwt认证过滤器,获取token并解析token,得到其中的useridà利用userid从redis中获取用户信息à存入到SecurityContextHolder2.4.1.1创建springboot工程2.4.1.2导入依
2023-03-05 17:05:54
357
原创 1.SpringSecurity快速入门
第三步:写controller,访问对应的url:localhost:8080/hello。UsernamePasswordAuthenticationFilter认证过滤器。认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户。FilterSecurityInterceptor授权过滤器。授权:经过认证后判断当前用户是否有权限进行某个操作。*第二步:引入SpringSecurity依赖。*第一步:创建springboot工程。用户名默认user,密码打印在控制台。
2023-03-05 16:52:27
584
原创 第四章 JdbcTemplate
什么是JdbcTemplate:是spring框架对JDBC进行封装,使用JdbcTemplate方便对数据库进行操作*引入相关依赖*在spring配置文件配置数据库连接池;配置JdbcTemplate对象,注入DataSource*创建service类,创建dao类,在dao注入jdbcTemplate对象。
2023-01-28 21:17:18
136
原创 第三章 AOP
什么是AOP:面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度降低,提高程序的可重用性,同时提高开发效率(不通过修改源代码方式,在主干功能里面添加新功能)*有多个增强类对同一个方法进行增强,设置增强优先级:在增强类上面添加注解@Order(数字类型值),数字类型值越小优先级越高。第四步:配置不同类型的通知,在增强类的里面,在作为通知的方法上添加通知类型的注解,使用切入点表达式。有接口情况:使用JDK 动态代理,创建接口实现类的代理对象增强类的方法。
2023-01-23 11:43:32
1164
原创 第二章 IOC
Autowired:根据属性类型进行自动装配,例如在service类里注入dao对象,首先在两个类上都添加注解,其次在service类的dao属性上添加@Autowired注解(不需要添加set方法)演示bean的生命周期(7步):首先创建类,实现接口BeanPostProcessor,重写接口中的方法,然后在配置文件中配置后置处理器。第二步实现接口里面的方法,在实现的方法中定义返回的bean类型。*什么是注解:注解是代码特殊标记,格式:@注解名称(属性名称1=属性值1,属性名称2=属性值2,…
2023-01-21 12:16:11
882
原创 第一章 spring框架概述
Spring是轻量级的开源的JavaEE框架*可以解决企业应用开发的复杂性*有两个核心的部分:IOC、AOPIOC:控制反转,把创建对象的过程交给Spring进行管理AOP:面向切面,不修改源代码的情况下进行功能的增加*Spring特点:方便解耦,简化开发;支持AOP编程;方便程序的测试;方便和其他框架整合;方便进行事务操作;降低API开发难度。
2023-01-11 18:21:40
380
原创 Part4_场景_第60章 阿利亚加&第61章 基于MATSim的新住户效用函数检验:以保定市为例
阿利亚加,在土耳其,位于伊兹密尔以北约50公里;它是土耳其爱琴海地区30个伊兹米尔省区之一,对国民经济至关重要。Aliaga是Petkim的所在地,Petkim是土耳其最大的石化企业之一。2011年,Petkim在土耳其500强工业企业中排名第12位(伊斯坦布尔工业商会,2012年,访问日期:2012年7月3日);该企业包括14个工厂和7个辅助单位。根据土耳其统计局的数据,2011年阿利亚加的人口为68 432人; 56 440人居住在中心社区,11 992人居住在周边村庄(土耳其统计研究所,2011年)。
2022-12-03 16:49:31
575
原创 Part4_场景_第58章 慕尼黑&第59章 苏福尔斯
慕尼黑大都市区的MATSim情景是2010年建立的。主要目标是模拟当地空气污染物和全球温室气体排放,以及它们的水平如何随着不同的政策措施而变化-在汇总和空间分类的水平上。因此,该方案被用于EMT的开发和测试 (EmissionModeling Tool,见第36章)。有关示例说明在一天内产生总体NO2私家车和货运车辆排放的示例,请参见图58.1。来自visum的网络信息被转换成MATSim格式,从而形成了由17个888节点和41个942链路组成的网络。然后,该运输供应与来自不同来源的旅行需求相关联; 基于M
2022-12-03 16:21:15
157
原创 Part4_场景_第57章 新加坡
MATSim新加坡方案实施并维护在FCL (未来城市实验室),SEC的研究计划 (新加坡-全球环境可持续发展ETHCenter) 和新加坡国家研究基金会创建的一部分 (卓越和技术企业校园)。该方案涵盖了整个新加坡地区,人口约为500万,其中包括来往于邻国马来西亚的交通。新加坡为基于代理和活动的建模方法提供了一个很好的研究案例: 一个人口稠密的城市,拥有广泛的公共交通基础设施以及先进的交通和定价政策。
2022-11-29 17:35:20
214
原创 Part4_场景_第55章 瑞士&第56章 苏黎世
旅行需求基本上取自2000年和2005年的全国旅行调查(瑞士联邦统计局,2006年)(瑞士微观人口普查),尽管这一抽样大大低估了货运,忽略了非瑞士居民的跨境交通。因此,虽然在现实中,人们可能会在严重的洪水情况下放弃工作活动,从而导致额外的经济成本,但MATSim代理总是会设法到达他们的工作地点并工作,无论情况有多糟糕。为了进行验证,我们从不同的来源获得了城市、州和国家层面的统计数据(ASTRA,2006),从而得出了苏黎世内城的123条测量链路,这些链路以贝尔维尤为中心,半径为12公里。
2022-11-29 17:33:59
458
原创 第3章 Tomcat&servlet
Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。*部署(deploy):把一个项目放到web容器里,项目的名字是context root*Tomcat目录结构:bin:可执行文件目录conf:配置文件目录lib:存放lib的目录logs:日志文件目录webapps:项目部署的目录work:工作目录temp:临时目录。
2022-11-28 17:20:26
408
原创 Part4_场景_第52章 场景描述&第53章 柏林I:BVG场景&第54章 柏林II:CEMDAP-Matsim-Cadyts方案
本书的最后一部分总结了MATSIM场景,如图52.1中的地图所示,并在http://matsim.org/scolutions中列出。尽管存在基于免费和公共数据的真实场景,如圣地亚哥或科特布斯场景(第84或66章),但由于数据隐私问题,许多场景是不公开的。然而,了解适用于情景创建的一般方法和途径,并理解在这些过程中面临的问题,可能会极大地支持和鼓励新情景的构建。以下各章提供了关于研究区域、人口和需求产生、活动地点、网络、模拟模式、校准和验证、取得的结果以及相关项目的信息。
2022-11-28 14:12:18
383
原创 第1章 HTML&第2章 CSS-JS
HTML:超文本标记语言,决定页面上显示什么内容(html是解释型语言,不是编译型,浏览器是容错的)*CSS:决定页面上内容的美观程度*JavaScript:页面特效。
2022-11-24 17:52:35
167
原创 Part3_理解MATSIM_第51章 效益-成本分析中matsim的微观经济学解释
本章解释如何从微观经济角度解释Matsim的基于代理的框架,以及如何将其用于运输政策的经济评估,例如BCA(Benfit-Cost Analysis)。本章正文部分摘自Mkickh-ofer(2014,第2.3节)。通常,经济政策评估的过程包括三个步骤:首先,通过建立用户对政策的反应模型来预测系统的变化(第51.1节)。其次,对这些变化进行一些(潜在的货币)估价(第51.2节)。第三,适用适当的聚合规则(第51.3节)。正如将在下一节中显示的,这些步骤既不完全独立,也不完全相互依赖。
2022-11-21 21:20:38
336
原创 第9章 Apache-Dbutils实现CRUD操作
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。*API介绍:工具类:org.apache.commons.dbutils.DbUtils*jar包*使用ResultSetHandler的匿名实现类实现try {";//自定义ResultSetHandler//方法重写@Override//resultSet就是结果集。
2022-11-16 15:29:30
231
原创 第8章 数据库连接池
数据库连接池的基本思想:为数据库建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从缓冲池中取出一个,使用完毕后再放回*数据库连接池负责分配、管理和释放数据库连接,它语序应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
2022-11-16 15:25:37
544
原创 第6章 数据库事务 & 第7章 DAO及相关实现类
事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态*事务处理:保证所有事务都作为一个工作单元来执行。
2022-11-16 15:17:43
376
原创 第4章 操作BLOB类型字段 & 第5章 批量插入
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器*插入BLOB类型的数据必须使用PreparedStatement*MySQL的四种BLOB类型:TinyBlob:最大255;Blob:最大65k;MediumBlob:最大16M;LongBlob:最大4G。
2022-11-16 15:12:07
722
原创 第3章 使用PreparedStatement实现CRUD操作
由于每次进行增删改操作都要执行数据库连接和资源关闭的操作,所以将这两个操作封装成一个工具类。
2022-11-15 09:05:35
134
原创 第1章 JDBC概述 & 第2章 获取数据库连接
数据的持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。*java中的数据存储技术:JDBC直接访问数据库JDO (Java Data Object )技术第三方O/R工具,如Hibernate, Mybatis 等JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。*JDBC:JDBC(Java Database Connectivity)是一个。
2022-11-14 17:04:49
371
原创 Part3_理解MATSIM_第50章 运动波的排队表示
本章证明了MATSim的移动性仿真已经非常接近实现KWM的粒子离散化实例。为了完全一致,需要 (i) 使用JDEQSim (或在QSim中实现实际的后向波速),并 (ii) 通过链路的流量 (对应于其最大的流量) 来限制链路的流入三角形FD)。
2022-11-13 09:16:06
347
原创 Part3_理解MATSIM_第49章 MATSim中的选择模型
原则上,智能体的选择集可以先验地计算出来,然后在AMATSIM仿真运行期间保持不变。然而,必须对每个相关的系统状态进行预计算(例如,在策略更改之前和ER一个策略更改之前)。或者,MATSIM可以用于在迭代循环中生成代理的选择集(第1.2节)。如等式(49.1)所示,选择集的产生影响模拟选择。这种机制最简单的说明是,从来没有出现在选择集中的备选方案不能被选择。类似地,在选择模型不变的情况下,在选择集中包含某些低(高)概率的备选方案会降低(增加)它们被选择的概率。
2022-11-08 14:44:48
313
原创 Part3_理解MATSIM_第48章 MATSim作为蒙特卡洛引擎
在 “合成现实” 中 “学习” 的 “代理” 是人工智能和/或多代理仿真中的常见术语,但它不属于运输建模的标准术语。本章从建模和仿真概念的角度解释了matsim的功能,这些概念在运输领域更为成熟。区分模型和模拟非常重要。模型描述了系统的某些方面;仿真评估模型。例如,简单的路线选择模型可以声明以25% 概率选择路线a和以75% 概率选择路线B。然后,对该模型的模拟从此分布中得出一个或多个实现 (路线选择)。一个人总是需要一个模型才能模拟。
2022-11-07 09:57:00
432
原创 Part3_理解MATSIM_第46章 matsim的一些历史&第47章 基于代理的流量分配
本章从DTA的角度介绍MATSim。交通分配问题,无论是宏观的还是微观的,静态的还是动态的,基于行程的还是基于代理的,都是为了识别出行需求和出行供给 (网络条件) 相互一致的情况。旅行需求来自对网络状况做出反应的需求模型;这些是使用旅行需求作为输入的供应模型 (网络加载模型) 的输出。流量分配问题的解决方案描述了旅行需求和旅行供给之间的平衡。可能,此问题的最直观的数学公式是由固定点定义的: 找到生成网络条件的需求模式,从而导致相同的需求模式重新出现。
2022-11-04 10:57:26
327
原创 第17章 触发器
MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。*触发器是由事件来触发某个操作,这些事件包括INSERT、 UPDATE 、 DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。*当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。
2022-11-02 21:10:24
302
原创 Part2_扩展MATSIM_Subpart13_开发过程和自己的模块_第45章 如何编写自己的扩展并可能将其贡献给Matsim
有关本章所述概念的注释文档可以在http://matsim.org/javadoc→main发行版下找到,方法是转到相应的类和接口文档条目。这些也应该指向例子。对于使用Matsim API进行编程,我们推荐https://github.com/matsim-org/matsim-example-project作为起点;特别是,这将澄清matsim如何可以用作Apache Maven插件。
2022-11-02 21:08:12
262
原创 第16章 变量、流程控制与游标
定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增强存储程序处理问题的能力,避免程序异常停止运行。*定义条件:定义条件就是给MySQL中的错误码命名,这有助于存储的程序代码更清晰。它将一个错误名字和指定的错误条件关联起来。这个名字可以随后被用在定义处理程序的 DECLARE HANDLER 语句中。*定义条件使用DECLARE语句,语法格式如下:DECLARE错误名称。
2022-10-31 19:30:19
194
原创 Part2_扩展MATSIM_Subpart13_开发过程和自己的模块_第44章 组织:开发过程、代码结构和对Matsim的贡献
本章描述新功能如何进入Matsim。它描述了Matsim团队和社区、Matsim项目中存在的不同角色、开发驱动程序和过程以及用于集成的工具。目标是提供开发过程的概述,以便用户能够快速访问Matsim社区,并能够根据某个角色为Matsim做出贡献。
2022-10-31 18:05:50
298
原创 第15章 存储过程与存储函数
含义:一组经过预先编译的SQL语句的封装*好处:(1)简化操作,提高了sql语句的重用性,减少程序员压力(2)减少操作过程中的失误,提高效率(3)减少网络传输量(客户端不需要把所有的SQL语句通弄个网络发给服务器)(4)减少了SQL语句暴露在网上的风险,提高数据查询的安全性*和视图、函数的对比:它和视图有着同样的优点,清晰、安全,还可以减少网络传输量。
2022-10-29 11:06:59
500
原创 Part2_扩展MATSIM_Subpart12_其他模块_第42章 Matsim4Urbansim&第43章 停产模块
Matsim4Urbansim”是一个适配器包,用于将Matsim用作Urbansim的旅行模型插件,Urbansim是一个著名的土地使用模拟(例如,Waddell et al.,2003年,见http://www.urbansim.org)。例如,UrbanSim有用于住宅选址、商业选址或开发和建筑建设的子模型,从而在各种条件和约束下创建综合的潜在城市或区域开发场景。交通基础设施在这种发展中发挥了重要作用;例如,交通便利的地区作为住宅和商业活动更具吸引力。
2022-10-29 10:57:57
471
原创 第14章 视图
为什么使用视图: 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。*视图的理解:视图是一种虚拟表 ,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念。视图建立在已有表的基础上,视图赖以建立的这些表称为基表。视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然。
2022-10-26 16:33:24
333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人