开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

kubernetes数据卷管理源码分析

分析k8s对volume的管理
jonathan_loda 发布于 2周前 阅读 159 评论 1

Spring、Spring Boot和TestNG测试指南 - 测试@Configuration

[码云地址][1] 在Spring引入Java Config机制之后,我们会越来越多的使用@Configuration来注册Bean,并且Spring Boot更广泛地使用了这一机制,其提供的大量Auto Configuration大大简化了配置工作。那么问题来了,如何确保@Configuration和Auto Configuration按照预期运行呢,是否正确地注册了Bean呢?本章举例测试@Configuration和Auto Configuration的方法(因为Auto Configuration也是@Configuration,所以测试方法是一样的)。 ## 例子1:测试@Configuration 我们先写一个简单的@Configuration: ```java @Configuration public class FooConfiguration { @Bean public Foo foo() { return new Foo(); } } ``` 然后看[FooConfiguration][src-ex1-FooConfiguration]是否能够正确地注册Bean: ```java public class FooConfigurationTest { private AnnotationConfigApplicationContext context; @BeforeMethod public void init() { context = new AnnotationConfigApplicationContext(); } @AfterMethod(alwaysRun = true) public void reset() { context.close(); } @Test public void testFooCreation() { context.register(FooConfiguration.class); context.refresh...
jarchan 发布于 3周前 阅读 1840 评论 5

Spring、Spring Boot和TestNG测试指南 - @OverrideAutoConfiguration

[码云地址][1] 在[Chapter 1: 基本用法 - 使用Spring Boot Testing工具][chapter_1_s3_spring_boot_testing.md]里提到: > 除了单元测试(不需要初始化ApplicationContext的测试)外,尽量将测试配置和生产配置保持一致。比如如果生产配置里启用了AutoConfiguration,那么测试配置也应该启用。因为只有这样才能够在测试环境下发现生产环境的问题,也避免出现一些因为配置不同导致的奇怪问题。 那么当我们想在测试代码里关闭Auto Configuration如何处理? 1. 方法1:提供另一套测试配置 1. 方法2:使用`@OverrideAutoConfiguration` 方法1虽然能够很好的解决问题,但是比较麻烦。而方法2则能够不改变原有配置、不提供新的配置的情况下,就能够关闭Auto Configuration。 在本章节的例子里,我们自己做了一个Auto Configuration类,[AutoConfigurationEnableLogger][src-AutoConfigurationEnableLogger]: ```java @Configuration public class AutoConfigurationEnableLogger { private static final Logger LOGGER = LoggerFactory.getLogger(AutoConfigurationEnableLogger.class); public AutoConfigurationEnableLogger() { LOGGER.info("Auto Configuration Enabled");...
jarchan 发布于 4周前 阅读 57

Spring、Spring Boot和TestNG测试指南 - @ActiveProfiles

[码云地址][1] [@ActiveProfiles][doc-active-profiles]可以用来在测试的时候启用某些Profile的Bean。本章节的测试代码使用了下面的这个配置: ```java @Configuration public class Config { @Bean @Profile("dev") public Foo fooDev() { return new Foo("dev"); } @Bean @Profile("product") public Foo fooProduct() { return new Foo("product"); } @Bean @Profile("default") public Foo fooDefault() { return new Foo("default"); } @Bean public Bar bar() { return new Bar("no profile"); } } ``` ## 例子1:不使用ActiveProfiles 在没有[@ActiveProfiles][doc-active-profiles]的时候,profile=default和没有设定profile的Bean会被加载到。 源代码[ActiveProfileTest][src-ex1-ActiveProfileTest]: ```java @ContextConfiguration(classes = Config.class) public class ActiveProfileTest extends AbstractTestNGSpringContextTests { @Autowired private Foo foo; @Autowired private Bar bar; @Test public void test() { assertEquals(foo.getName(), "default"); assertEquals(bar.getName(), "no profile"); } } ``` ## 例子2:使用ActiveProfiles 当使...
jarchan 发布于 4周前 阅读 418 评论 2

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

Spring、Spring Boot和TestNG测试指南 - 使用Spring Boot Testing工具

[Github地址][1] 前面一个部分讲解了如何使用Spring Testing工具来测试Spring项目,现在我们讲解如何使用Spring Boot Testing工具来测试Spring Boot项目。 > 在Spring Boot项目里既可以使用Spring Boot Testing工具,也可以使用Spring Testing工具。 > 在Spring项目里,一般使用Spring Testing工具,虽然理论上也可以使用Spring Boot Testing,不过因为Spring Boot Testing工具会引入Spring Boot的一些特性比如AutoConfiguration,这可能会给你的测试带来一些奇怪的问题,所以一般不推荐这样做。 ## 例子1:直接加载Bean 使用Spring Boot Testing工具只需要将`@ContextConfiguration`改成`@SpringBootTest`即可,源代码见[FooServiceImpltest][src-ex1-FooServiceImpltest]: ```java @SpringBootTest(classes = FooServiceImpl.class) public class FooServiceImplTest extends AbstractTestNGSpringContextTests { @Autowired private FooService foo; @Test public void testPlusCount() throws Exception { assertEquals(foo.getCount(), 0); foo.plusCount(); assertEquals(foo.getCount(), 1); } } ``` ## 例子2:使用内嵌@Configuration加载Bean 源代码见[FooServi...
jarchan 发布于 1个月前 阅读 521 评论 1

使用SwaggerSpringBootStarter展示web项目api接口

使用springfox的swagger,配合spring boot来使用,展示web项目的api接口
阿信sxq 发布于 2个月前 阅读 614 评论 3

利用邮件提高自身工作/生活规划的能力

邮件生活归纳法,是指利用邮件不断强化自身对于工作/生活规划能力的方法,并且也有助于知识的积累与经验的回顾。
撒哈拉 发布于 3个月前 阅读 497 点赞 3

比特币深层技术原理浅析

这是一篇主要针对技术小白的文章。本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状。
中成才 发布于 3个月前 阅读 4143 评论 30 点赞 12 打赏 4

Md5扩展攻击的原理和应用

本文阐述了md5扩展攻击的原理,虽然算法没有仔细研究但是,过程觉得比较有意思所以发这篇博客。
想飞的猫 发布于 4个月前 阅读 566 评论 1

聊聊Golang中的range关键字

golang range
william3608 发布于 4个月前 阅读 367 评论 2 点赞 3

Linux之父:人生在世,Just for Fun !

It started out as survival, but it became a social thing.And then it becomes entertainment. 《Just for Fun: The Story of an Accidental Revolutionary》,是Linux内核的创建者林纳斯·托瓦兹(Linus Torvalds)的自传。这本书由他和大卫·戴蒙德(David Diamond)联合撰写,叙述林纳斯·托瓦兹从小的成长历程、创建Linux内核、Git的过程以及软件世界的江湖恩怨。全书主体部分采用一问一答的访谈形式,由戴蒙德在他们的的汽车旅行过程中记
RiboseYim 发布于 4个月前 阅读 1581 评论 10 点赞 1

关于“全球遭受网络勒索攻击”WannaCry2.0病毒软件图文分析

我是技术一般般码农 若分析的不到位 错误 请各位大神指出 分析此软件只是出去安全角度研究;请勿非法使用,工具就不公开,大家有兴趣逛逛我博客哈 liberxue博客:本文请勿转载by liberxue
Liberxue 发布于 4个月前 阅读 4429 评论 17 点赞 5

重复性管理——从泛值到泛型以及泛函(上)

为什么用泛型以及它到底解决了什么问题?文中用大量例子介绍了重复性管理的一些具体做法,重点分析了泛型范式在解决重复性问题上的应用。
国栋 发布于 5个月前 阅读 1602 评论 35 点赞 12

极简之上 : jfinal beetlsql 缺点 优点 ORM篇 卷I

  1.前言      不夸张的说你可以花上一天时间来看本文. 因为文中的内容给你将来节约的时间或许不止一天.     我并不喜欢写博客(高质量的). 毕竟花费的时间精力太大了, 也不知道写的东西对阅读者是否有用. 如果没用这样往往浪费阅读者的时间.     在写完一篇博客我时常需要从头到尾反复的看很多遍. 写的过程中还要考虑用户大概看到哪个时间段开始会疲劳, 当疲劳后又该采用什么样的方法让用户提神.   原因     说实话, 我也没想到还会在写这么一篇博客. 这篇博客的出现是因为之前对项目完工后做的一个总结.     因为项目过程中与数据库交互使用的是jfinal ORM. 上一篇文中(推荐先看,在读本文)叙述了jfinal ORM开发多表的项目中不便之处, 导致model编写会略乱与维护困难.     经历过这些事后,打算重新寻找一种方案, 来解决这个在数据交互阶段拖慢开发速度, 且维护困难的问题. 就找到了beetlsql, 做了些demo. 接着就花了一天时间来写一篇项目总结的文章, 并给出了一种优雅的编码方式 java8 + lombok + beetlsql 这种编码方式达到了真正且符合我的极简且极速编码, 并打算用来解决上个项目的痛点. (我当时的出发点很简单. 希望给遇见同样问题的开发人员,...
渔泯小镇 发布于 5个月前 阅读 1087 评论 47 点赞 17

使用t-io实现简单的rpc调用(一)

1.先从最基础的来 编写接口及实现类 public interface IUserService { public String getList(); public String getList(Integer id,String name); } import cn.ensoft.service.IUserService; public class UserServiceImpl implements IUserService{ @Override public String getList() { return "{'id':'abc','name':'hello'}"; } @Override public String getList(Integer id, String name) { return "{'id':'"+id+"','name':'"+name+"'}"; } } 2.t-io自定义公共类     2.1业务消息包 import java.io.UnsupportedEncodingException; import org.tio.core.intf.Packet; public class MsgPacket extends Packet{ public static final String CHARSET = "GB18030"; private byte[] body; public MsgPacket() { } public MsgPacket(String msg) { try { this.body = msg.getBytes(MsgPacket.CHARSET); } catch (UnsupportedEncodingException e) { } } /** * @return the body */ public byte[] getBody(){ return body; } /** * @param body the body to set ...
龙图腾飞 发布于 5个月前 阅读 3527 评论 19 点赞 17

Dubbo与Zookeeper、SpringMVC整合和使用(入门级)

Dubbo与Zookeeper、SpringMVC整合和使用 相关的原理介绍可以参考http://blog.csdn.net/congcong68/article/details/41113239博客写的内容。
小帅帅丶 发布于 5个月前 阅读 6521 评论 47 点赞 13

讲真:序列化必读

     序列化是啥啥是序列化为啥要序列化把啥序列化不序列化行不行?问题真多,馒头要一口一口吃问题要一个一个回答。所谓序列化就是格式化,感觉哪不对劲,是约定的格式化,及格了,能够满足正向操作和逆向操作的约定格式化,良好了,能高效稳定满足正向操作和逆向操作的约定格式化,满分了,能提供轻松扩展并高效稳定满足正向操作和逆向操作的约定格式化,耶~恭喜你都会抢答啦。能够支持PHP语言的......,歇菜没你事别瞎掺和。     格式化好理解,标题正中段落开头空两个字段落结束换行这就是格式化,修饰词约定的意思是说你看见这个格式就知道哪个是标题哪个是正文,满足正向操作和逆向操作意思是说能转换过来也必须能丝毫不差原样还原回去,高效好理解一次操作就占一半以上系统开销,数据中一大半是冗余信息估计没人爱用,稳定可靠不能动不动就掉链子,一会儿异常了一会儿解析失败了一会儿又丢数据了。序列化是啥啥是序列化我解释完了,觉得不对的下面就不用看了。     为啥要序列化,一提这茬儿内心满满的委屈一把辛酸泪呀。早年电脑不联网的时候数据都在本地格式化着用,后来联网以后因为硬件和网络等差异,高低字节序主机字节序网络字节序各种问题扑面而...
厉力文武 发布于 5个月前 阅读 657 评论 3 点赞 4

视觉角度: jfinal的Model与Beetlsql比较

JFinal 是目前在 git.oschina.net java中关注最多的项目. 亲自用JFinal开发过有上百张表的项目.项目完结后总要做个总结 这篇文章是介绍项目中开发的一些经历. 会首先列出JFinal的Model开发 (只是Model的使用) 使用Beetlsql替换JFinal的Model (给出一种较爽编码方式) 对比两个在写多条件查询sql时, (就是需要条件判断, 为null的不参与查询) 1.JFinal的Model开发 JFinal的ORM下面称JFinal的Model 这是Model的新增 修改 删除 jfinal 实体类1 public class Elephant extends Model<Elephant> { public static final Elephant Dao = new Elephant(); public List<Integer> findIds() { return Db.query("select id from tb_bird"); } }   jfinal 测试用例1 @Log4j public class ElephantTest { @Test public void testChainSave() { // 无需要创建字段 new Elephant().set("age", 17).set("name", "jfinal").set("desc", "mvc + orm").save(); } @Test public void testUpdate() { Elephant elephant = Elephant.Dao.findById(1); elephant.set("age", 18).update(); } @Test public v...
渔泯小镇 发布于 5个月前 阅读 3353 评论 97 点赞 18

并查集快速入门教程

并查集作用就是将一些有联系的点进行分组,然后通过找他们各自的根节点就知道两个点是否在同一个分组中。
varyshare 发布于 5个月前 阅读 137

SOA与基于CDIF的API联动

schema就像是活字印刷里每个字,都应该有的固定规范,比如字体、大小、线条宽度等等,没有这个规范,有的字大、有的字小,印出来乱七八糟,而这恰恰是目前微服务领域的现状:基于XML的很多微服务根本没有schema!它们仅仅是山寨SOA。
尼采与旺财 发布于 6个月前 阅读 161 评论 1 点赞 1

 git 第一次提交代码

    在git开了一个仓库,在本地又用git init开了一个仓库。我想用git pull 直接把项目提交到我的git工程中。结果并不是我想像的结果。 1。$ git push remote-liyin fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use     git push --set-upstream remote-liyin master 然后又加上--set-upstream 2。$ git push  --set-upstream remote-liyin master To https://github.com/gitliyin/liyin.git  ! [rejected]        master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/gitliyin/liyin.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 然后又用git pull 3. $ git pull remote-liyin You asked to pull from the remote 'remote-liyin', but did not specify a branch. Because this is not the d...
李印01 发布于 3个月前 阅读 18

Spring、Spring Boot和TestNG测试指南 - 测试@Configuration

[码云地址][1] 在Spring引入Java Config机制之后,我们会越来越多的使用@Configuration来注册Bean,并且Spring Boot更广泛地使用了这一机制,其提供的大量Auto Configuration大大简化了配置工作。那么问题来了,如何确保@Configuration和Auto Configuration按照预期运行呢,是否正确地注册了Bean呢?本章举例测试@Configuration和Auto Configuration的方法(因为Auto Configuration也是@Configuration,所以测试方法是一样的)。 ## 例子1:测试@Configuration 我们先写一个简单的@Configuration: ```java @Configuration public class FooConfiguration { @Bean public Foo foo() { return new Foo(); } } ``` 然后看[FooConfiguration][src-ex1-FooConfiguration]是否能够正确地注册Bean: ```java public class FooConfigurationTest { private AnnotationConfigApplicationContext context; @BeforeMethod public void init() { context = new AnnotationConfigApplicationContext(); } @AfterMethod(alwaysRun = true) public void reset() { context.close(); } @Test public void testFooCreation() { context.register(FooConfiguration.class); context.refresh...
jarchan 发布于 3周前 阅读 1840 评论 5

搭建DVWA测试环境和SQL注入之SQLmap入门

DVWA是一款渗透测试的演练系统,在圈子里是很出名的。如果你需要入门,并且找不到合适的靶机,那我就推荐你用DVWA。 我们通常将演练系统称为靶机,下面请跟着我一起搭建DVWA测试环境。如果你有一定的基础,可以直接看下面一章节。 0x00 前言 我这里用的是win7 系统,为啥要用win7。因为刚好我这里有现成的系统。其实你用windows 2008 等等的都是可以的。 我只是用win7 举个栗子,请看好下面。 0x01 VMware安装 为什么我要说下VMware的安装?因为VMware能够帮助你,更加方便的搭建DVWA。 下面是VMware的下载链接: 1 http://sw.bos.baidu.com/sw-search-sp/software/a08321b624453/VMware_workstation_full_12.5.2.exe 下载后运行,安装。安装教程如下: http://jingyan.baidu.com/article/90895e0f95a07564ec6b0bc7.html 0x02 Win7安装 请把Win7下载好。 https://www.microsoft.com/zh-cn/download/details.aspx?id=5842 然后在虚拟机中配置。 1 http://jingyan.baidu.com/article/ff4116259a1e7d12e48237ad.html 0x03 安装PHP集成环境 我这里用的是phpstudy 2016,这个使用起来比较方便。下面是现在的最新版。 1 http://www.phpstudy.net/phpstudy/phpStudy20161103.zip 下载...
binhu 发布于 2个月前 阅读 100

@RequestParam(value="id",required = false, defaultValue = 0

@RequestParam(value="id",required = false, defaultValue = 0
黄柳淞 发布于 2个月前 阅读 385

比特币深层技术原理浅析

这是一篇主要针对技术小白的文章。本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状。
中成才 发布于 3个月前 阅读 4143 评论 30 点赞 12 打赏 4

各大互联网公司架构演进之路汇总

Web 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享(视频+PPT)(2.3日更新) 高德——快速转型时期的稳定性架构实践(视频+PPT)(2.3日更新) 秒杀系统架构分析与实战 腾讯社区搜索架构演进(视频+PPT) 京东峰值系统设计 京东咚咚架构演进 新浪微博平台架构 微博图床架构揭秘 微博推荐架构的演进 当当网系统分级与海量信息动态发布实践 当当网架构演进及规划实现(视频+PPT) LinkedIn架构这十年 Facebook’s software architecture(英文) 从0到100——知乎架构变迁史 豆瓣的基础架构 搜狗搜索广告检索系统-弹性架构演进之路(视频+PPT) 小米网抢购系统开发实践 小米抢购限流峰值系统「大秒」架构解密 海尔电商峰值系统架构设计最佳实践 唯品会峰值系统架构演变 1号店电商峰值与流式计算 蘑菇街如何在双11中创造99.99%的可用性 麦包包峰值架构实践 苏宁易购:商品详情系统架构设计 携程的技术演进之路 篱笆网技术架构性能演进(视频+PPT) 从技术细节看美团的架构(1.26日更新) 美团云的网络架构演进之路(2.3日...
robinfly 发布于 2个月前 阅读 17

Shiro 整合 Spring 第一次

![输入图片说明](https://static.oschina.net/uploads/img/201709/25135320_D1rN.png "在这里输入图片标题") ``` org.apache.shiro shiro-core 1.2.3 org.apache.shiro shiro-web 1.2.3 org.apache.shiro shiro-spring 1.2.3 org.apache.shiro shiro-ehcache 1.2.3 ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135353_ogs1.png "在这里输入图片标题") ``` shiroFilter org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true targetBeanName shiroFilter shiroFilter /* ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135445_ugP1.png "在这里输入图片标题") ``` /**=anon ``` ### 1 登录 ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172924_WZFN.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172945_RLFf.png "在这里输入图片标题") ``` package com.shi.controller; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc...
小小小施爷 发布于 15小时前 阅读 4

如何用几何画板破解版制作正方体展开课件

在学习空间几何图形时,图形的展开与折叠对于同学来讲,是一个立体几何向平面几何的转化过程。对于圆柱、圆锥、棱柱、棱锥而言,其展开图比较单一。而正方体的展开图因其样式多,是同学们在学习的难点。所以老师在讲课时,可以制作正方体展开动画课件,在课堂上进行演示,就可以帮助学生们理解,下面就一起来学习具体制作技巧。 几何画板作为老师们青睐的的课件制作工具,可以很方便快捷地作出很好的教学课件,这里就利用该工具来制作正方体展开课件。 几何画板-Windows:http://wm.makeding.com/iclk/?zoneid=17783 几何画板-Mac:http://wm.makeding.com/iclk/?zoneid=17784 几何画板演示正方体11种展开图课件模板样图: 几何画板课件模板——动态演示正方体11种展开图 在该课件中,通过动态演示每一种展开图,把几何中的正方体11种展开图做了个形象直观的比较,有利于学生接受、理解。我们可以通过点击每一种展开的操作按钮,来演示正方体的展开图,还可以将正方体分步展开或分步折合,更加仔细的观察展开的每个步骤。 将正方体的展开图归类为以下四类,共11个基本图形,离开了这11个基本图形,其都不会是正方体的展开图(这里应注意的是有的时候是这11个基本图形的翻折...
软件贴士 发布于 13小时前 阅读 3

CoreOS 重启策略

就是不写摘要.
taadis 发布于 1周前 阅读 27

vue.js模拟后端请求

后端请求
黄柳淞 发布于 1天前 阅读 5

CentOS-7安装 Python3.6详解

 安装完CentOS7后,修改yum源为国内镜像,详细步骤参考>>。接下来我们接着安装Python环境... 一、安装环境:VirtualBox + CentOS-7-x86_64-Minimal  二、安装步骤: 下载Python 3.6源码包,下载地址:https://www.python.org/downloads/release/python-362/。 由于使用wget命令下载太慢,我已经用迅雷下载好安装包到本地。 使用ssh客户端远程连接虚拟机,我以xshell为例,输入rz命令(该命令需要安装lrzsz工具)上传下载好的安装包,如下图 解压源码安装包,tar -zxvf Python-3.6.2.tgz, 然后将其移动到/usr/local 下 mv Python-3.6.2 /usr/local/。移动到/usr/local下是为了将其保留,方便日后安装第三方模块。 配置安装目录,在Python-3.6.2目录下执行 ./configure --prefix=/usr/etc/python-3.6 检查环境出现错误,提示在环境中没有找到C编译器,主要原因是我们安装的CentOS Minimal版,缺少一些组建。执行yum install gcc 安装编译工具 安装完成gcc工具后,继续第4步操作,当出现如下提示表示环境验证成功,可以执行安装,运行make && make install 命令进行编译安装,等待其完成。 执行完后如下界面,里面有提升错误,原因和上面一样缺少依赖组建,执行 yum in...
桃源闲人 发布于 2个月前 阅读 47 打赏 1

kubernetes数据卷管理源码分析

分析k8s对volume的管理
jonathan_loda 发布于 2周前 阅读 159 评论 1

Spring、Spring Boot和TestNG测试指南 - 使用Spring Boot Testing工具

[Github地址][1] 前面一个部分讲解了如何使用Spring Testing工具来测试Spring项目,现在我们讲解如何使用Spring Boot Testing工具来测试Spring Boot项目。 > 在Spring Boot项目里既可以使用Spring Boot Testing工具,也可以使用Spring Testing工具。 > 在Spring项目里,一般使用Spring Testing工具,虽然理论上也可以使用Spring Boot Testing,不过因为Spring Boot Testing工具会引入Spring Boot的一些特性比如AutoConfiguration,这可能会给你的测试带来一些奇怪的问题,所以一般不推荐这样做。 ## 例子1:直接加载Bean 使用Spring Boot Testing工具只需要将`@ContextConfiguration`改成`@SpringBootTest`即可,源代码见[FooServiceImpltest][src-ex1-FooServiceImpltest]: ```java @SpringBootTest(classes = FooServiceImpl.class) public class FooServiceImplTest extends AbstractTestNGSpringContextTests { @Autowired private FooService foo; @Test public void testPlusCount() throws Exception { assertEquals(foo.getCount(), 0); foo.plusCount(); assertEquals(foo.getCount(), 1); } } ``` ## 例子2:使用内嵌@Configuration加载Bean 源代码见[FooServi...
jarchan 发布于 1个月前 阅读 521 评论 1

Spring源码阅读-AOP实现核心类AbstractAutoProxyCreator

前面两篇主要是讲从两个入口对AbstractAutoProxyCreator的子类进行注册,下面看具体实现逻辑: 一、先看类图,找到AbstractAutoProxyCreator在spring所处的位置: 索引AbstractAutoProxyCreator的本质是BeanPostProcessor,AbstractAutoProxyCreator中实现了代理创建的逻辑,它的子类AbstractAdvisorAutoProxyCreator主要是获取Advisors, 核心方法getAdvicesAndAdvisorsForBean,而图中红色字实现类就是前面两篇分别讲的注册,他们有一些根据自己场景的实现逻辑。 二、debug代码,跟踪流程: 在createBean中,doCreateBean是真正创建对象的地方,在创建对象之前调用了postProcessBeforeInstantiation方法,给扩展点一次创建代理的机会,如果代理对象返回不为空则createBean就直接返回了,后面的目标对象就不再实例化了。 public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException { Object cacheKey = getCacheKey(beanClass, beanName); if (beanName == null || !this.targetSourcedBeans.contains(beanName)) { if (this.advisedBeans.containsKey(cacheKey)) { return null; } // 1. 有些对象是不可以被代...
Small-Liu 发布于 4周前 阅读 29

Spring、Spring Boot和TestNG测试指南 - @ActiveProfiles

[码云地址][1] [@ActiveProfiles][doc-active-profiles]可以用来在测试的时候启用某些Profile的Bean。本章节的测试代码使用了下面的这个配置: ```java @Configuration public class Config { @Bean @Profile("dev") public Foo fooDev() { return new Foo("dev"); } @Bean @Profile("product") public Foo fooProduct() { return new Foo("product"); } @Bean @Profile("default") public Foo fooDefault() { return new Foo("default"); } @Bean public Bar bar() { return new Bar("no profile"); } } ``` ## 例子1:不使用ActiveProfiles 在没有[@ActiveProfiles][doc-active-profiles]的时候,profile=default和没有设定profile的Bean会被加载到。 源代码[ActiveProfileTest][src-ex1-ActiveProfileTest]: ```java @ContextConfiguration(classes = Config.class) public class ActiveProfileTest extends AbstractTestNGSpringContextTests { @Autowired private Foo foo; @Autowired private Bar bar; @Test public void test() { assertEquals(foo.getName(), "default"); assertEquals(bar.getName(), "no profile"); } } ``` ## 例子2:使用ActiveProfiles 当使...
jarchan 发布于 4周前 阅读 418 评论 2

GDAL for Android编译

虚拟机完成Gdal for android的编译
洋碱 发布于 3周前 阅读 20

必须添加对程序集"System.Core"的引用

就是不写摘要.
taadis 发布于 2个月前 阅读 44

Linux的源文件

在用apt-get install命令安装软件时,经常提示“安装包不存在”; 系统的源不给力就会找不到软件包,因此修改文件/etc/apt/sources.list  文件,加入合适的原地址。
Caishu 发布于 1天前 阅读 5

Linux安装软件包make报错,缺少依赖的*.h文件

在用安装包安装文件时,经常报错出现如下类似的问题,表示*.o需要依赖*.h文件。 make: *** No rule to make target '/include/ruby.h', needed by 'zlib.o'。 停止。 解决方法: 去makefile中找到*.o文件所以来的*.h文件的路径,确认*.h是否存在。 或者直接在Makefile中增加一行top_srcdir=../..  然后执行make,一般都过
Caishu 发布于 1天前 阅读 2

[小技巧]关于spring boot 整合mybatis-plus: value为null时不返回的问题。

emmm,大概是这样的,数据库里面有几个字段是null,但是返回的数据结构中需要有这个几个这段,但是默认情况下不mybatis查询结果map封装是不返回的。
z201 发布于 2周前 阅读 15

SourceTree安装 跳过账户验证

SourceTree2 跳过Atlassian账户验证
yanyun5ong 发布于 6天前 阅读 20 点赞 2

从三层架构迈向领域驱动设计(学习笔记)

三层架构   严格分层架构模式的特点是上层只能访问相邻的下层,其他层次间的调用都不允许。三层架构就是一种严格分层模式,它把职责划分为界面展示、业务逻辑、数据访问三层,还有一个业务实体,前面三层都要依赖它,所以它并不构成一个层。   三层架构的特点是一种面向过程的编程思想,特点如下: a. 业务实体类中基本上只有属性没有方法。 b. 业务逻辑层的类基本上只有方法没有属性。 c. 将数据表结构映射为业务实体类是一个惯用做法,以至于有人将其称之为“传统”。这样的好处是只需要理解一套模型,能够通过自动化工具从数据表直接生成业务实体,还能够自然而然的通过自动化机制存储与检索业务实体。但对于复杂点的业务,这样做就是绝大部分问题的根源。 d. 当业务膨胀起来,需要划分模块的时候,我们有个常用的变形:提取一个服务层出来,用来组合模块间的交互,还为业务逻辑层提供了一个防腐层,可以把记录日志、验证权限、处理异常等职责分配给服务层。     由于采用了严格分层模式,用户界面层是绝对不能跨过业务逻辑层调用数据访问层的,同理服务层也是不能调用数据访问层。但是图2都有四层了。 其实三层架构还有个更准确的名字----分层贫血领域模型架构...
ND小龙 发布于 6天前 阅读 18

@RequestParam(value="id",required = false, defaultValue = 0

@RequestParam(value="id",required = false, defaultValue = 0
黄柳淞 发布于 2个月前 阅读 385

Spring、Spring Boot和TestNG测试指南 - 测试@Configuration

[码云地址][1] 在Spring引入Java Config机制之后,我们会越来越多的使用@Configuration来注册Bean,并且Spring Boot更广泛地使用了这一机制,其提供的大量Auto Configuration大大简化了配置工作。那么问题来了,如何确保@Configuration和Auto Configuration按照预期运行呢,是否正确地注册了Bean呢?本章举例测试@Configuration和Auto Configuration的方法(因为Auto Configuration也是@Configuration,所以测试方法是一样的)。 ## 例子1:测试@Configuration 我们先写一个简单的@Configuration: ```java @Configuration public class FooConfiguration { @Bean public Foo foo() { return new Foo(); } } ``` 然后看[FooConfiguration][src-ex1-FooConfiguration]是否能够正确地注册Bean: ```java public class FooConfigurationTest { private AnnotationConfigApplicationContext context; @BeforeMethod public void init() { context = new AnnotationConfigApplicationContext(); } @AfterMethod(alwaysRun = true) public void reset() { context.close(); } @Test public void testFooCreation() { context.register(FooConfiguration.class); context.refresh...
jarchan 发布于 3周前 阅读 1840 评论 5

程序编译后运行时的内存分配-转

一、编译时与运行时的内存情况 1.编译时不分配内存 编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。 2.运行时必分配内存 运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程序在进入实际内存之前要首先分配物理内存。 3.编译过程 只能简单说一下,因为如果要详细的话,就是一本书了《编译原理》。编译器能够识别语法,数据类型等等。然后逐行逐句检查编译成二进制数据的obj文件,然后再由链接程序将其链接成一个EXE文件。此时的程序是以EXE文件的形式存放在磁盘上。 4.运行过程 当执行这个EXE文件以后,此程序就被加载到内存中,成为进程。此时一开始程序会初始化一些全局对象,然后找到入口函数(main()或者WinMain()),就开始按程序的执行语句开始执行。此时需要的内存只能在程序的堆上进行动态增加/释放了。   二、程序运行时的内存结构: 第一种图示: 另外一种图示: 各区段功能说明:  1、程序代码区:存放函数体的二进制代码。 2、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量...
new_chaos 发布于 3天前 阅读 11

最详细的Log4j使用教程

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。 一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2、src同级创建并设置log4j.properties ### 设置### log4j.rootLogger = debugger,D #如果想过滤框架只打印错误信息可以这样配置(org.apace和org.springframework开头的包只打印错误信息) log4j.logger.org.apache=ERROR log4j.logger.org.springframework=ERROR #控制台输出info信息 log4j.appender.D=org.apache.log4j.ConsoleAppender log4j.appender.D.layout=org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern=[%-5p] %t %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l %m%n ### 输出com.xwtec.listener.PushFutureListener类所在的INFO 级别以上的日志到/webapp/logs/push_ios_interface/iosPushLog.log ### log4j.logger.com.xwtec.listener.PushFutureListener=INFO,A log4j.appender.A = org.apache.log4j.DailyRollingFileAppender log4j.appender.A.File = /we...
庞陆阳 发布于 2个月前 阅读 13

你竟敢说你懂Spring框架?有可能你是没看到这些...(上)

前些天在某知名论坛里,看到有人说,“spring框架超难的诶!” 小编我表示很无奈,只能呵呵两声。       好像他说的确实很对。   所以,特地去搜刮了一些关于spring的面试题,希望能帮助各位同学在升职加薪的路上,一去不复返。   1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。   2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring 包含并管理应用中对象的生命周期和配置。 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO...
流浪歌手 发布于 1周前 阅读 341

化学式中间的圆点符号怎么打

ChemDraw作为最实用的化学公式编辑器软件,在绘制化学结构时,离不开给化学结构标记原子名称,有时还需要插入分隔点,如果你不知道怎么操作,没关系。本教程以下图给出的化学结构为例,讲解用ChemDraw打化学式中间的圆点符号。 化学结构示例 软件获取地址如下: ChemDraw 16:http://wm.makeding.com/iclk/?zoneid=18518 ChemDraw 16 MAC:http://wm.makeding.com/iclk/?zoneid=18519 具体操作步骤如下: 1.启动ChemDraw Std14.0,打开用户界面; 2.在工具栏选择环已烷,输入在编辑区域(如下图所示); 在编辑区域画出环已烷 3.选择文本工具,标记原子名称(如下图所示); 在环已烷结构上标记原子名称 4.选择文本工具,在结构的右面单击显示文本框,选择“View”菜单下的“Show Character Map Windows”命令(如下图所示); 在View菜单下选择“Show Character Map Windows”命令 5.弹出如下图所示的Character Map对话框,选择该符号,或者输入Alt+0183(小键盘); 在Character Map下选择分隔点符号 6.该符号就会出现在文本框中,设置该符号为粗体(同样适用word),然后在该符号后面输入2HCI。 按照上面的步骤操作,就可以掌握输入化学式分隔点的具体方法,这样就不要担...
软件贴士 发布于 6天前 阅读 9

Notepad++ Compare 对比插件

需要一个类似subclipse的插件来对比本地的文件,但是subclipse只能对比线上和本地的内容,所以用Notepad++ Compare插件代替
吃兔纸不吐毛 发布于 4天前 阅读 7

书单

###软件工程类: 人月神话,最后期限,人件,xp和scrum xx(极限开发和敏捷之类的) ###软件设计类: 领域驱动开发,领域驱动开发实践. ###java编程 java编程思想,Effective java, clean code
流光韶逝 发布于 4周前 阅读 9

使用SwaggerSpringBootStarter展示web项目api接口

使用springfox的swagger,配合spring boot来使用,展示web项目的api接口
阿信sxq 发布于 2个月前 阅读 614 评论 3

swoft微服务框架之容器IOC和控制器

什么是swoft? swoft是基于swoole协程2.x的高性能PHP微服务框架,内置http服务器。框架全协程实现,性能优于传统的php-fpm模式。项目地址: https://github.com/stelin/swoft 全局容器 每一个被swoft管理的PHP对象称之为Bean,swoft提供了一个IoC容器来初始化对象和获取对象,解决对象间的依赖管理。properties.php可以配置容器相关参数。 return [ ... 'autoInitBean' => true,// 是否自动初始化bean,如果false,使用bean时创建Bean,默认是false 'beanScan' => [ // 配置注解自动扫描的命令空间 'app\controllers', 'app\models', 'app\beans', ], ... ]; 注入对象与引用 目前支持两种方式注入对象,数组配置和@Bean注解。 配置规则 必须定义一个数组KEY且为字符串,KEY及是Bean名称,可以通过名称使用 数组值里面必须有KEY为class,class指定需要注入的类名称 其余数组配置项,若KEY=0且值为自然数组(数组个数对应构造函数参数),则是类构造函数配置,反之是类属性配置,KEY及是类成员名称,属性配置只要不是静态属性都可以。 base.php配置顺序没有强力要求,建议按使用顺序配置,方便阅读 引用规则 引用properties.php分递...
Stelin 发布于 1个月前 阅读 49

paxos协议

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。
cassia_ 发布于 5天前 阅读 6

wex5与springboot前后端分离(简化)

wex5与springboot前后端分离(简化)
黄柳淞 发布于 2天前 阅读 6

将博客搬至CSDN

dfdsfsfsf
orec 发布于 2天前 阅读 6

hbase的cache与batch的理解

cache:      在默认情况下,如果你需要从hbase中查询数据,在获取结果ResultScanner时,hbase会在你每次调用ResultScanner.next()操作时对返回的每个Row执行一次RPC操作。即使你使用ResultScanner.next(int nbRows)时也只是在客户端循环调用RsultScanner.next()操作,你可以理解为hbase将执行查询请求以迭代器的模式设计,在执行next()操作时才会真正的执行查询操作,而对每个Row都会执行一次RPC操作。        因此显而易见的就会想如果我对多个Row返回查询结果才执行一次RPC调用,那么就会减少实际的通讯开销。这个就是hbase配置属性“hbase.client.scanner.caching”的由来,设置cache可以在hbase配置文件中显示静态的配置,也可以在程序动态的设置。        cache值得设置并不是越大越好,需要做一个平衡。cache的值越大,则查询的性能就越高,但是与此同时,每一次调用next()操作都需要花费更长的时间,因为获取的数据更多并且数据量大了传输到客户端需要的时间就越长,一旦你超过了maximum heap the client process 拥有的值,就会报outofmemoryException异常。当传输rows数据到客户端的时候,如果花费时间过长,则会抛出ScannerTimeOutException...
Zero零_度 发布于 4天前 阅读 5

Shiro 整合 Spring 第一次

![输入图片说明](https://static.oschina.net/uploads/img/201709/25135320_D1rN.png "在这里输入图片标题") ``` org.apache.shiro shiro-core 1.2.3 org.apache.shiro shiro-web 1.2.3 org.apache.shiro shiro-spring 1.2.3 org.apache.shiro shiro-ehcache 1.2.3 ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135353_ogs1.png "在这里输入图片标题") ``` shiroFilter org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true targetBeanName shiroFilter shiroFilter /* ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135445_ugP1.png "在这里输入图片标题") ``` /**=anon ``` ### 1 登录 ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172924_WZFN.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172945_RLFf.png "在这里输入图片标题") ``` package com.shi.controller; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc...
小小小施爷 发布于 15小时前 阅读 4

用极益做网站,比你花大钱的好多了!

[提示:极益2.0发布,增加志愿者登记,大事记、团队列表等功能,修正编辑器,更好用,移动端效果更佳]  大家都说开源很丑,真的是吗? 这个是我们的默认效果 我们专门为公益组织定制的   看动图,GIF被压缩的很惨,都马赛克了。。。   手机版的视频效果 视频加不上,扫码直接看 志愿者报名,后台查看的功能已经直接加到开源版本里面了   手机的样式已经尽可能的调整了。 不仅仅是为了好看 也为了方便别人发朋友圈     编辑器!!!我们花了很大的代价去优化编辑器,调整各种细节。 不管多少图片,Word批量上传咱们都不怕。   团队列表就这样这个样子,美,是很重要的!     标签式的内容呈现结构,自带图标,使用方便   别人看你的网站,和支持你,最想看的是什么?   你是牛 为什么你牛 是真的吗       现在都在这里了 当然你还可以另做他用   大事记,按照年份,可以无数次的添加。   你还可以用这个功能 记录 机构的志愿服务历史   讲故事最好的方法是什么? 文字配合图片一起讲! 这个功能就是为了方便大家讲故事 叫图文故事   这个就是业务地图了 告诉大家 你们的项目分布在什么地方 但是这个叫背景地图 告诉大家,我在哪   发票申请增加了税号  ...
极益科技 发布于 1个月前 阅读 21

各大互联网公司架构演进之路汇总

Web 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享(视频+PPT)(2.3日更新) 高德——快速转型时期的稳定性架构实践(视频+PPT)(2.3日更新) 秒杀系统架构分析与实战 腾讯社区搜索架构演进(视频+PPT) 京东峰值系统设计 京东咚咚架构演进 新浪微博平台架构 微博图床架构揭秘 微博推荐架构的演进 当当网系统分级与海量信息动态发布实践 当当网架构演进及规划实现(视频+PPT) LinkedIn架构这十年 Facebook’s software architecture(英文) 从0到100——知乎架构变迁史 豆瓣的基础架构 搜狗搜索广告检索系统-弹性架构演进之路(视频+PPT) 小米网抢购系统开发实践 小米抢购限流峰值系统「大秒」架构解密 海尔电商峰值系统架构设计最佳实践 唯品会峰值系统架构演变 1号店电商峰值与流式计算 蘑菇街如何在双11中创造99.99%的可用性 麦包包峰值架构实践 苏宁易购:商品详情系统架构设计 携程的技术演进之路 篱笆网技术架构性能演进(视频+PPT) 从技术细节看美团的架构(1.26日更新) 美团云的网络架构演进之路(2.3日...
robinfly 发布于 2个月前 阅读 17

Servlet3.0新特性 (1)

异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。 新增的注解支持:该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。 可插性支持:熟悉 Struts2 的开发者一定会对其通过插件的方式与包括 Spring 在内的各种常用框架的整合特性记忆犹新。将相应的插件封装成 JAR 包并放在类路径下,Struts2 运行时便能自动加载这些插件。现在 Servlet 3.0 提供了类似的特性,开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。 异步处理支持     一个普通 Servlet 的主要工作流程大致如下:首先,Servlet 接收到请求之后,可能需要对请求携带的数据进行一些预处理;接着,调用业务接口的某些方法,以完成业务处理;最后,根据处理的结果提交响应,Servlet 线程结束。     异步...
Favour 发布于 6天前 阅读 7

如何用几何画板破解版制作正方体展开课件

在学习空间几何图形时,图形的展开与折叠对于同学来讲,是一个立体几何向平面几何的转化过程。对于圆柱、圆锥、棱柱、棱锥而言,其展开图比较单一。而正方体的展开图因其样式多,是同学们在学习的难点。所以老师在讲课时,可以制作正方体展开动画课件,在课堂上进行演示,就可以帮助学生们理解,下面就一起来学习具体制作技巧。 几何画板作为老师们青睐的的课件制作工具,可以很方便快捷地作出很好的教学课件,这里就利用该工具来制作正方体展开课件。 几何画板-Windows:http://wm.makeding.com/iclk/?zoneid=17783 几何画板-Mac:http://wm.makeding.com/iclk/?zoneid=17784 几何画板演示正方体11种展开图课件模板样图: 几何画板课件模板——动态演示正方体11种展开图 在该课件中,通过动态演示每一种展开图,把几何中的正方体11种展开图做了个形象直观的比较,有利于学生接受、理解。我们可以通过点击每一种展开的操作按钮,来演示正方体的展开图,还可以将正方体分步展开或分步折合,更加仔细的观察展开的每个步骤。 将正方体的展开图归类为以下四类,共11个基本图形,离开了这11个基本图形,其都不会是正方体的展开图(这里应注意的是有的时候是这11个基本图形的翻折...
软件贴士 发布于 13小时前 阅读 3

Shiro 整合 Spring 第一次

![输入图片说明](https://static.oschina.net/uploads/img/201709/25135320_D1rN.png "在这里输入图片标题") ``` org.apache.shiro shiro-core 1.2.3 org.apache.shiro shiro-web 1.2.3 org.apache.shiro shiro-spring 1.2.3 org.apache.shiro shiro-ehcache 1.2.3 ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135353_ogs1.png "在这里输入图片标题") ``` shiroFilter org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true targetBeanName shiroFilter shiroFilter /* ``` ![输入图片说明](https://static.oschina.net/uploads/img/201709/25135445_ugP1.png "在这里输入图片标题") ``` /**=anon ``` ### 1 登录 ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172924_WZFN.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201709/25172945_RLFf.png "在这里输入图片标题") ``` package com.shi.controller; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc...
小小小施爷 发布于 15小时前 阅读 4

Linux安装软件包make报错,缺少依赖的*.h文件

在用安装包安装文件时,经常报错出现如下类似的问题,表示*.o需要依赖*.h文件。 make: *** No rule to make target '/include/ruby.h', needed by 'zlib.o'。 停止。 解决方法: 去makefile中找到*.o文件所以来的*.h文件的路径,确认*.h是否存在。 或者直接在Makefile中增加一行top_srcdir=../..  然后执行make,一般都过
Caishu 发布于 1天前 阅读 2

Linux的源文件

在用apt-get install命令安装软件时,经常提示“安装包不存在”; 系统的源不给力就会找不到软件包,因此修改文件/etc/apt/sources.list  文件,加入合适的原地址。
Caishu 发布于 1天前 阅读 5

vue.js模拟后端请求

后端请求
黄柳淞 发布于 1天前 阅读 5

将博客搬至CSDN

dfdsfsfsf
orec 发布于 2天前 阅读 6

wex5与springboot前后端分离(简化)

wex5与springboot前后端分离(简化)
黄柳淞 发布于 2天前 阅读 6

wex5与springboot前后端分离

wex5与springboot前后端分离
黄柳淞 发布于 2天前 阅读 2

学习计算机系统结构思维导图

我本人也算是个奇葩吧。好不容易费劲考上个二本院校,结果还被大学老师认定为是高中不认真学习才会上这种学校的。其实也挺不容易的,毕竟乡下小高中,一个学校能考取二本的才不到十个人,也没什么师资啥的。能有个高中课本教材,高三发份复习资料也就不错了。 哈哈,先不提这个了。挺伤心的。下面聊聊计算机专业,其实我大一上完,也没啥感觉,主要就学了一门编程语言,还有高等数学,英语了。还有一门数据结构。学得还算可以,自我感觉良好。怎么说呢,学习其实脚踏实地,由浅入深就行了。切不可心急。   要论经验的话,学院引进了一流学府的顶级大神,曾在中国计算机协会发表 A,B 类会议论文10~30篇。虽然我还没到那个级别,不过许多话都是值得牢记的。 1.“高手写程序只用汇编语言”。 2. “数据结构是超级重要的一门课”。 3.“你们读过计算机程序设计艺术吗?TCP/IP四卷?,算法导论?,不好意思,我全读完了”。 4.“比尔盖茨精通编译原理,汇编语言”,“linus精通汇编语言”。 ... ...   其实说到底,还是要把基础打好: 哪些基础呢?我总结出来一幅图,献给继续奋斗的自己。    说白了,就像盖大楼一样。一层一层往上盖就行了,就不会有太多迷茫了。 至于从...
new_chaos 发布于 2天前 阅读 2

程序编译后运行时的内存分配-转

一、编译时与运行时的内存情况 1.编译时不分配内存 编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。 2.运行时必分配内存 运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程序在进入实际内存之前要首先分配物理内存。 3.编译过程 只能简单说一下,因为如果要详细的话,就是一本书了《编译原理》。编译器能够识别语法,数据类型等等。然后逐行逐句检查编译成二进制数据的obj文件,然后再由链接程序将其链接成一个EXE文件。此时的程序是以EXE文件的形式存放在磁盘上。 4.运行过程 当执行这个EXE文件以后,此程序就被加载到内存中,成为进程。此时一开始程序会初始化一些全局对象,然后找到入口函数(main()或者WinMain()),就开始按程序的执行语句开始执行。此时需要的内存只能在程序的堆上进行动态增加/释放了。   二、程序运行时的内存结构: 第一种图示: 另外一种图示: 各区段功能说明:  1、程序代码区:存放函数体的二进制代码。 2、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量...
new_chaos 发布于 3天前 阅读 11

关于书上说的“编译的时候分配内存”

一下均为网络上收集的资料:   1、所谓在编译期间分配空间指的是静态分配空间(相对于用new动态申请空间),如全局变量或静态变量(包括一些复杂类型的常量),它们所需要的空间大小可以 明确计算出来,并且不会再改变,因此它们可以直接存放在可执行文件的特定的节里(而且包含初始化的值),程序运行时也是直接将这个节加载到特定的段中,不 必在程序运行期间用额外的代码来产生这些变量。  其实在运行期间再看“变量”这个概念就不再具备编译期间那么多的属性了(诸如名称,类型,作用域,生存期等等),对应的只是一块内存(只有首址和大小), 所以在运行期间动态申请的空间,是需要额外的代码维护,以确保不同变量不会混用内存。比如写new表示有一块内存已经被占用了,其它变量就不能再用它了; 写delete表示这块内存自由了,可以被其它变量使用了。(通常我们都是通过变量来使用内存的,就编码而言变量是给内存块起了个名字,用以区分彼此)  内存申请和释放时机很重要,过早会丢失数据,过迟会耗费内存。特定情况下编译器可以帮我们完成这项复杂的工作(增加额外的代码维护内存空间,实现申请和释 放)。从这个意义上讲,局部自动变量也是由编译器负责分配空间的...
new_chaos 发布于 3天前

什么叫编译时和运行时

以前经常听说编译时和运行时的概念.但没太搞明白具体代表啥意思.后面花了点时间研究了下.总算知道个大概意思了. 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了了便于理解我们可以统称为编译器) 那编译时就是简单的作一些翻译工作,比如检查老兄你有没有粗心写错啥关键字了啊.有啥词法分析,语法分析之类的过程.就像个老师检查学生的作文中有没有错别字和病句一样. 如果发现啥错误编译器就告诉你.如果你用微软的VS的话,点下build.那就开始编译,如果下面有errors或者warning信息,那都是编译器检 查出来的.所谓这时的错误就叫编译时错误,这个过程中做的啥类型检查也就叫编译时类型检查,或静态类型检查(所谓静态嘛就是没把真把代码放内存中运行起 来,而只是把代码当作文本来扫描下).所以有时一些人说编译时还分配内存啥的肯定是错误的说法.   运行时 所谓运行时就是代码跑起来了.被装载到内存中去了.(你的代码保存在磁盘上没装入内存之前是个死家伙.只有跑到内存中...
new_chaos 发布于 3天前

程序语言设计的发展

 
new_chaos 发布于 3天前 阅读 1

各种排序方法总结

各种排序方法总结 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。   冒泡法:   这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。 直接插入排序:O(n*n) 选择排序:O(n*n) 快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大多数情况下总是最好的。 归并排序:log2(n)*n 堆排序:log2(n)*n 希尔排序:算法的复杂度为n的1.2次幂   这里我没有给出行为的分析,因为这个很简单,我们直接来分析算法: 首先我们考虑最理想的情况  1.数组的大小是2的幂,这样分下去始终可以被2整除。假设为2的k次方,即k=log2(n)。  2.每次我们选择的值刚好是中间值,这样,数组才可以被等分。  第一层递归,循环n次,第二层循环2*(n/2)......  所以共有n+2(n/2)+4(n/4)+...+n*(n/n) = n+n+n+...+n=k*n=log2(n)*n  所以算法复杂度为O(log2(n)*n)  其他的情况只会比这种情况差,最差的情况是每次选择到的middle都是最小值或最大值,那么他将变成交换法(由于使用了递归,情况更糟)。但是你认...
new_chaos 发布于 3天前

手机误删照片怎样恢复?原来这么简单

现在人们的工作和生活都离不开手机,不知道有没有朋友跟小编一样,有时不小心将手机里面的照片删除了,但是又想找回来,有什么办法吗? 这时可以通过EasyRecovery来实现手机恢复数据,下面就一起来看是如何帮你解决这个难题的呢。下面简单介绍一下手机照片误删怎么恢复的具体步骤: 恢复准备,下载EasyRecovery免费版安装并运行软件,软件获取地址如下: EasyRecovery企业版:http://wm.makeding.com/iclk/?zoneid=17785   EasyRecovery专业版:http://wm.makeding.com/iclk/?zoneid=17786 EasyRecovery个人版:http://wm.makeding.com/iclk/?zoneid=17787 第一步,打开软件,选择“内存设备”, 然后单击“继续“进入第二步,“选择要扫描的卷“, 选完后单击“继续“进入第三步,选择“选择恢复场景”, 第四步,“检查您的选项“,查看选择有无错误, 第五步,扫描丢失文件,扫描结束后,软件左边会显示找到的文件目录,并且按普通文件目录、视频、图像、文本、压缩包等分类,右边窗口是文件详细信息,选择你的重要文件,右击另存到你的盘中就可以了。 以上就是给大家介绍的恢复手机误删照片的方法,有了EasyRecovery易恢复,再也不怕照片和文件找不回来了。 以上教程参...
软件贴士 发布于 4天前 阅读 2

工作感悟20170922

    紧张繁忙的一周很快就要过去了,一转眼今天都周五了。好像我比你们每个人都很忙。办公室基本上初步成型了,里面有很多协调的工作要做,选择,沟通,采购,安装,售后发票等工作都要做。还要协调项目的进展售前实施售后等。周一下午见了一个银行的客户,周二下午见了一个电台的客户,周三下午见了一个外地证券的客户。本身自己还有开发任务,下周又要出差,然后就是国庆。     从管理上我不太喜欢管人,不喜欢审计不喜欢控制,希望都要靠自觉,但从本周的工作来看整体上效率并不算太高。从管理上大的主要有两种流派,一种是假设你是坏人,我要用各种手段来监控,证明你是好人,比如周报,日报,打卡等。二种是假设你是好人,在工作中我要发现你是不是做了坏事,国外的很多弹性工作制度的文化是这样的。但绝大多数公司做不到第二种,很多人在没有监督和有效惩罚的情况下会很容易的降低自己的要求,比如闯红灯等。网上有个故事大意是,有两个人一个中国人一个日本人在餐厅工作。制度要求每天擦6次桌子,那个日本人能做到每天6次,但中国人会越擦越少。     我努力在公司营造一个轻松的工作环境和氛围,但并不代表公司生存就很容易。竞争很残酷,远比你们想的要难,我...
赛克蓝德 发布于 4天前 阅读 5

Notepad++ Compare 对比插件

需要一个类似subclipse的插件来对比本地的文件,但是subclipse只能对比线上和本地的内容,所以用Notepad++ Compare插件代替
吃兔纸不吐毛 发布于 4天前 阅读 7

hbase的cache与batch的理解

cache:      在默认情况下,如果你需要从hbase中查询数据,在获取结果ResultScanner时,hbase会在你每次调用ResultScanner.next()操作时对返回的每个Row执行一次RPC操作。即使你使用ResultScanner.next(int nbRows)时也只是在客户端循环调用RsultScanner.next()操作,你可以理解为hbase将执行查询请求以迭代器的模式设计,在执行next()操作时才会真正的执行查询操作,而对每个Row都会执行一次RPC操作。        因此显而易见的就会想如果我对多个Row返回查询结果才执行一次RPC调用,那么就会减少实际的通讯开销。这个就是hbase配置属性“hbase.client.scanner.caching”的由来,设置cache可以在hbase配置文件中显示静态的配置,也可以在程序动态的设置。        cache值得设置并不是越大越好,需要做一个平衡。cache的值越大,则查询的性能就越高,但是与此同时,每一次调用next()操作都需要花费更长的时间,因为获取的数据更多并且数据量大了传输到客户端需要的时间就越长,一旦你超过了maximum heap the client process 拥有的值,就会报outofmemoryException异常。当传输rows数据到客户端的时候,如果花费时间过长,则会抛出ScannerTimeOutException...
Zero零_度 发布于 4天前 阅读 5

springboot解决跨域请求问题

springboot解决跨域请求问题
黄柳淞 发布于 4天前 阅读 6

wex5请求json数据并进行解析展示

wex5请求json数据并进行解析展示
黄柳淞 发布于 4天前 阅读 2

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

Spring、Spring Boot和TestNG测试指南 - 测试@Configuration

[码云地址][1] 在Spring引入Java Config机制之后,我们会越来越多的使用@Configuration来注册Bean,并且Spring Boot更广泛地使用了这一机制,其提供的大量Auto Configuration大大简化了配置工作。那么问题来了,如何确保@Configuration和Auto Configuration按照预期运行呢,是否正确地注册了Bean呢?本章举例测试@Configuration和Auto Configuration的方法(因为Auto Configuration也是@Configuration,所以测试方法是一样的)。 ## 例子1:测试@Configuration 我们先写一个简单的@Configuration: ```java @Configuration public class FooConfiguration { @Bean public Foo foo() { return new Foo(); } } ``` 然后看[FooConfiguration][src-ex1-FooConfiguration]是否能够正确地注册Bean: ```java public class FooConfigurationTest { private AnnotationConfigApplicationContext context; @BeforeMethod public void init() { context = new AnnotationConfigApplicationContext(); } @AfterMethod(alwaysRun = true) public void reset() { context.close(); } @Test public void testFooCreation() { context.register(FooConfiguration.class); context.refresh...
jarchan 发布于 3周前 阅读 1840 评论 5

比特币深层技术原理浅析

这是一篇主要针对技术小白的文章。本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状。
中成才 发布于 3个月前 阅读 4143 评论 30 点赞 12 打赏 4

关于“全球遭受网络勒索攻击”WannaCry2.0病毒软件图文分析

我是技术一般般码农 若分析的不到位 错误 请各位大神指出 分析此软件只是出去安全角度研究;请勿非法使用,工具就不公开,大家有兴趣逛逛我博客哈 liberxue博客:本文请勿转载by liberxue
Liberxue 发布于 4个月前 阅读 4429 评论 17 点赞 5

重复性管理——从泛值到泛型以及泛函(上)

为什么用泛型以及它到底解决了什么问题?文中用大量例子介绍了重复性管理的一些具体做法,重点分析了泛型范式在解决重复性问题上的应用。
国栋 发布于 5个月前 阅读 1602 评论 35 点赞 12

使用t-io实现简单的rpc调用(一)

1.先从最基础的来 编写接口及实现类 public interface IUserService { public String getList(); public String getList(Integer id,String name); } import cn.ensoft.service.IUserService; public class UserServiceImpl implements IUserService{ @Override public String getList() { return "{'id':'abc','name':'hello'}"; } @Override public String getList(Integer id, String name) { return "{'id':'"+id+"','name':'"+name+"'}"; } } 2.t-io自定义公共类     2.1业务消息包 import java.io.UnsupportedEncodingException; import org.tio.core.intf.Packet; public class MsgPacket extends Packet{ public static final String CHARSET = "GB18030"; private byte[] body; public MsgPacket() { } public MsgPacket(String msg) { try { this.body = msg.getBytes(MsgPacket.CHARSET); } catch (UnsupportedEncodingException e) { } } /** * @return the body */ public byte[] getBody(){ return body; } /** * @param body the body to set ...
龙图腾飞 发布于 5个月前 阅读 3527 评论 19 点赞 17

Dubbo与Zookeeper、SpringMVC整合和使用(入门级)

Dubbo与Zookeeper、SpringMVC整合和使用 相关的原理介绍可以参考http://blog.csdn.net/congcong68/article/details/41113239博客写的内容。
小帅帅丶 发布于 5个月前 阅读 6521 评论 47 点赞 13

视觉角度: jfinal的Model与Beetlsql比较

JFinal 是目前在 git.oschina.net java中关注最多的项目. 亲自用JFinal开发过有上百张表的项目.项目完结后总要做个总结 这篇文章是介绍项目中开发的一些经历. 会首先列出JFinal的Model开发 (只是Model的使用) 使用Beetlsql替换JFinal的Model (给出一种较爽编码方式) 对比两个在写多条件查询sql时, (就是需要条件判断, 为null的不参与查询) 1.JFinal的Model开发 JFinal的ORM下面称JFinal的Model 这是Model的新增 修改 删除 jfinal 实体类1 public class Elephant extends Model<Elephant> { public static final Elephant Dao = new Elephant(); public List<Integer> findIds() { return Db.query("select id from tb_bird"); } }   jfinal 测试用例1 @Log4j public class ElephantTest { @Test public void testChainSave() { // 无需要创建字段 new Elephant().set("age", 17).set("name", "jfinal").set("desc", "mvc + orm").save(); } @Test public void testUpdate() { Elephant elephant = Elephant.Dao.findById(1); elephant.set("age", 18).update(); } @Test public v...
渔泯小镇 发布于 5个月前 阅读 3353 评论 97 点赞 18

Gitlab删库事件的借鉴意义

上周轰动一时的Gitlab事件终于尘埃落定了,不可否认的是这次事故Gitlab官方公关的的很出色,及时公布事件细节并寻求帮助,这让本是一个失误引发的事故,演变为一个真诚面对问题并反思的正面教材。对此,网络上一片好评。
wier 发布于 8个月前 阅读 4562 评论 40 点赞 11

使用 TeamCity 实现持续集成(CI)

持续集成(Continuous Integration),也就是我们经常说的 CI,是现代软件开发技术的基础。本文论述了如何使用 TeamCity 持续集成工具来实现项目的持续集成。
waylau 发布于 9个月前 阅读 2664 评论 16 点赞 6

接口自动化测试框架搭建

越来越多的公司开始做接口自动化测试,这里搭建一个轻量级的接口自动化框架,希望对大家有所帮助,在这之前希望大家先思考两个问题,什么是自动化测试?为什么要做接口自动化测试?
红焖鲤鱼 发布于 1年前 阅读 4544 评论 9 点赞 2

软件开发性感吗 ?!

软件开发的本质是复杂,有快感,无性感 。而美的感知是建立在亿万年人类进化之上深层次心理需求。
OceanStack 发布于 1年前 阅读 3049 评论 20 点赞 1

100行lua代码实现简单目录浏览器

界面部分用lae实现,无需写代码,100行lua代码实现简单目录浏览器。
ouloba 发布于 1年前 阅读 3678 评论 7 点赞 9

mybatis源码分析之Configuration

mybatis源码分析之Configuration
udbwcso 发布于 1年前 阅读 2817 评论 6 点赞 4

性能测试艺术

介绍 本文地址:http://my.oschina.net/u/1433482/blog/634047。 交流:python开发自动化测试群291184506 PythonJava单元白盒测试群144081101 英文原版书籍下载:https://bitbucket.org/xurongzhong/python-chinese-library/downloads。 精品文章推荐: python 2.7 中文教程及自动化测试介绍 使用Python学习selenium测试工具 为什么要进行性能测试? 什么是好的与坏的性能?为什么性能测试在软件开发生命周期(SDLC software development life cycle)中很重要? 性能不佳的应用通常无法实现企业预期利益,花费了大量时间和金钱,但是却在用户中失去了信誉。 相比功能测试和验收测试(OAT operational acceptance testing),性能测试容易被忽略,往往在发布之后碰到性能和扩展性问题才意识到重要性。 最终用户眼中的性能 性能”是用户最终的感受。性能优异的应用在最终用户执行某项任务时不会产生过度的延迟而引起用户的不满。好的应用不会在登录时显示空屏,不会让用户走神。比如偶然的用户在购物网站上寻找和购买他们所需要的东西时,客户中心不会收到差性能的投诉。 多 数应用系统在峰值时性能表现不佳。从高层看,应用由客户端软件和基础设施组成,后者包括了运行软件所需...
磁针石 发布于 2年前 阅读 7414 评论 11 点赞 22

编辑-发布-开发分离:git作为NoSQL数据库

动态网页是下一个要解决的难题。我们从数据库中读取数据,再用动态去渲染出一个静态页面,并且缓存服务器来缓存这个页面。既然我们都可以用Varnish、Squid这样的软件来缓存页面——表明它们可以是静态的,为什么不考虑直接使用静态网页呢? 为了实现之前说到的编辑-发布-开发分离的CMS,我还是花了两天的时间打造了一个面向普通用户的编辑器。效果截图如下所示: 作为一个普通用户,这是一个很简单的软件。除了Electron + Node.js + React作了一个140M左右的软件,尽管打包完只有40M左右 ,但是还是会把用户吓跑的。不过作为一个快速构建的原型已经很不错了——构建速度很快、并且运行良好。 尽管这个界面看上去还是稍微复杂了一下,还在试着想办法将链接名和日期去掉——问题是为什么会有这两个东西? 从Schema到数据库 我们在我们数据库中定义好了Schema——对一个数据库的结构描述。在《编辑-发布-开发分离 》一文中我们说到了echeveria-content的一个数据文件如下所示: { "title": "白米粥", "author": "白米粥", "url": "baimizhou", "date": "2015-10-21", "description": "# Blog post \n > This is an example blog post \n L...
Phodal 发布于 2年前 阅读 3863 评论 8 点赞 4

简述 Microservices(微服务)

自 2014 年始,Microservices(微服务)一词越来越火爆,不谈 Microservices 彷佛就 out 了。那么什么是 Microservices?Microservices 架构与传统的架构有什么区别?何时应该采用 Microservices?如何构建 Microservices? 本文,就针对上述提到的问题,来简单介绍下 Microservices。
waylau 发布于 2年前 阅读 3158 评论 4 点赞 8

老翟书摘:从《大野耐一的现场管理》看软件工程管理

![输入图片说明](https://static.oschina.net/uploads/img/201602/11213623_brK3.jpg "在这里输入图片标题") 前年,接触到了[《丰田生产方式》](http://my.oschina.net/zjzhai/blog/522423),就对大野耐一这个人十分感兴趣,就专门找他的书来看。 同时,我一直都有一种“感觉”:我们软件工程的管理方式都是从传统工业借鉴的。比如被吹上天的“精益”概念及“看板”概念。然而,这些概念里,少有人说明这样地借鉴的理由及借鉴了哪些,放弃了哪些。想回答这个问题就必须分别弄清楚传统工业和软件工程的本质。 我尝试在这本书了解一些关于传统工业的管理概念。以下是书摘: ####“精益”的概念的产生 >1990年,美国麻省理工学院的詹姆斯 沃麦克等多位教授,在《改变世界的机器》一书中,首次以“精益生产”(learn production)为核心介绍丰田生产方式,自此,欧美的一些企业才开始把丰田生产方式作为全球化以及提高生产率的标准和尺度。 ####领导说服力:坦诚即代表强劲的说服力 > 要想说服别人或是得到理解,若没有什么根据或道理是行不通的。 > 不要总是认为自己的言行没有错误,意识到错之后就应该爽快地说出来。如果有了这种胸怀,指挥现场以及下属不就变得轻而易举了吗...
翟志军 发布于 2年前 阅读 1868 评论 9 点赞 4

TCP可靠传输&流量控制&拥塞控制

TCP 可靠性算法解释,TCP 可靠性传输的理论知识 LwIP协议栈推荐
满小茂 发布于 2年前 阅读 8253 评论 7 点赞 23

UI自动化测试框架之Selenium关键字驱动

自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测试工具解释这些关键字即可对其应用自动化
红焖鲤鱼 发布于 2年前 阅读 11135 评论 14 点赞 18

基于清单的启动器的实现

第一步简单的 启动器,补全 LD_LIBRARY_PATH, 第二步,自定义的 Java 启动器。
Force武装卫队 发布于 2年前 阅读 2003 评论 5 点赞 6
顶部