10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页

2017年12月9日

摘要: SpringBoot MVC 和静态资源 首先,我们一定要搞清楚,mvc 配置和 static 配置的联系和区别。 mvc 配置其实就是给 spring mvc 框架用的, 具体来说, 比如 @RequestMapping, 它会返回一个ModelAndView。 我们对这个ModelAndView 阅读全文
posted @ 2017-12-09 15:22 CanntBelieve 阅读(11765) 评论(0) 推荐(2)

2017年12月8日

摘要: thymeleaf 的maven 配置我们都知道: 但是, 它还是很多坑的。 先看一个boot 的默认配置: # THYMELEAF (ThymeleafAutoConfiguration)spring.thymeleaf.cache=true # Enable template caching.s 阅读全文
posted @ 2017-12-08 21:36 CanntBelieve 阅读(3817) 评论(0) 推荐(0)

摘要: Boot 内嵌的tomcat 是不支持jsp 的, jetty 也是。 虽然boot也是有默认配置一个InternalResourceViewResolver ,但是它并不像我们在springmvc 中熟悉的那样, 它没有解析 jsp 的功能。 其实InternalResourceViewResol 阅读全文
posted @ 2017-12-08 21:15 CanntBelieve 阅读(1313) 评论(0) 推荐(0)

2017年12月6日

摘要: boot 的默认的静态资源有多个, 由 ResourceProperties 配置了默认值: private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resource 阅读全文
posted @ 2017-12-06 00:11 CanntBelieve 阅读(2220) 评论(0) 推荐(0)

2017年12月3日

摘要: 默认情况下, 我们修改 class 或者 修改模板文件(templates目录 下面的文件) 等动态资源, 都不会立即自动生效。 在IDEA中, 我通过Ctrl + F9 , 仍然是无效。 当然, 静态资源的修改是可以立即更新的, 但是也是需要Ctrl + F9 编译一次, 另外前端浏览器需要F5刷 阅读全文
posted @ 2017-12-03 23:59 CanntBelieve 阅读(3385) 评论(0) 推荐(1)

摘要: 我们已经知道 对于 RequestMappingInfoHandlerMapping, 它在对带有后缀的http 请求进行匹配的时候,如果找不到精确的pattern, 那么就会 pattern+.* 后再匹配 url。 它会处理多个不同形式是 url, 但是返回的只是一个view。 ContentN 阅读全文
posted @ 2017-12-03 16:30 CanntBelieve 阅读(4911) 评论(0) 推荐(0)

摘要: RequestMappingInfoHandlerMapping 在处理http请求的时候, 如果 请求url 有后缀,如果找不到精确匹配的那个@RequestMapping方法。那么,就把后缀去掉,然后.* 去匹配,这样,一般都可以匹配。 比如有一个@RequestMapping("/rest") 阅读全文
posted @ 2017-12-03 12:54 CanntBelieve 阅读(7863) 评论(0) 推荐(0)

摘要: SpringMVC 请求全过程漫谈 SpringMVC 跟其他的mvc框架一样,如 struts,webwork, 本质上都是 将一个 http 请求(request)进行各种处理, 然后返回response, 也就是一些数据给调用方。 调用方可以是 浏览器, 也可以是其他程序。 request 有 阅读全文
posted @ 2017-12-03 02:42 CanntBelieve 阅读(460) 评论(0) 推荐(0)

2017年12月1日

摘要: 在boot 中, 对404 和 异常 有了额外的处理。 当然,我们可以定制, 如何做呢? 1 写一个继承 ErrorController 的Controller 注意, 这里一定要继承 ErrorController 。 否则就boot会 启动失败,因为mapping 冲突, 因为不允许两个相同的 阅读全文
posted @ 2017-12-01 22:33 CanntBelieve 阅读(755) 评论(0) 推荐(0)

摘要: 今天终于把 boot 的异常处理完全研究透了: 那么 ResourceHttpRequestHandler ,是何时配置的,或者说何时注册? 没找到。 我感觉应该是 WebMvcAutoConfiguration 完成的 请参考 http://www.cnblogs.com/fangjian0423 阅读全文
posted @ 2017-12-01 21:48 CanntBelieve 阅读(2597) 评论(0) 推荐(1)

2017年11月28日

摘要: tomcat 不知道什么时候开始需要 JRE_HOME了: D:\java\apache-tomcat-7.0.68\bin>startup.batJAVA_HOME == D:\Program Files (x86)\Java\jdk1.8.0_121The JRE_HOME environmen 阅读全文
posted @ 2017-11-28 11:00 CanntBelieve 阅读(1109) 评论(0) 推荐(0)

2017年11月27日

摘要: Dubbo简介 Dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包括: 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型、序列化、"请求-响应"模式的信息交换方案 集群容错:提供基于借口方法的透 阅读全文
posted @ 2017-11-27 15:34 CanntBelieve 阅读(400) 评论(0) 推荐(0)

2017年11月18日

摘要: @Autowired 和 @Qualifier 使用xml 注入的时候, 我们可以指定 autowire=“byType” 或“byName” 。 但是使用 注解的时候, @Autowired 只有一个 required 属性, 无法设置 by name或者 by type。 那么 这个时候, 我们 阅读全文
posted @ 2017-11-18 18:02 CanntBelieve 阅读(578) 评论(0) 推荐(0)

摘要: spring内置的转换器 在spring xml 文件中,配置属性的时候, 不管实际是 list 还是map ,还是Date, 或者原生的java 类型, 我们只能配置xml 给它们。 那么 spring 在实例化bean 的时候, 这些属性是必须要经过转换的。 那么,spring 具体是怎么实现的 阅读全文
posted @ 2017-11-18 15:12 CanntBelieve 阅读(622) 评论(0) 推荐(0)

摘要: 在spring中, 提供了至少三种的 类型转换方式: ConversionServiceFactoryBean, FormattingConversionServiceFactoryBean, CustomEditorConfigurer。 方式一:ConversionServiceFactoryB 阅读全文
posted @ 2017-11-18 12:18 CanntBelieve 阅读(655) 评论(0) 推荐(0)

2017年11月13日

摘要: 其实我们可以完全不使用 context:property-placeholder ,而是使用 PropertySourcesPlaceholderConfigurer : 注意,其中的locations 不能这么写: 需要把其中的list 去掉, 也没有深究为什么。 大概是spring 版本问题吧 阅读全文
posted @ 2017-11-13 15:43 CanntBelieve 阅读(320) 评论(0) 推荐(0)

摘要: 不难知道, property-placeholder 的解析是 PropertyPlaceholderBeanDefinitionParser 完成的, 但是 它仅仅是个parser , 它仅仅是读取了 location 等配置属性, 并没有完成真正的解析,及 注册。 我们把 location 设置 阅读全文
posted @ 2017-11-13 15:34 CanntBelieve 阅读(1203) 评论(0) 推荐(0)

2017年11月12日

摘要: xml bean factory 的解析过程的 堆栈大概是这样的: 可见,spring xml 文件的解析 基本是由 XmlBeanDefinitionReader 完成的。 bean 在代码层面的定义, 其实可以是非常丰富的。 最常见的, 当然就是 xml 文件中的 bean 元素了吧。 如果考虑 阅读全文
posted @ 2017-11-12 13:06 CanntBelieve 阅读(2102) 评论(0) 推荐(0)

摘要: 粗略一看, 它有这么多实现: 可见, 它是多么基础 而重要的一个 接口啊! 它提供了两个方法: 两个方法的名字 都是 postProcessXxxInitialization 的格式, 不是 Before 就是 After, 都是围绕 process Initialization 这个过程来做文章的 阅读全文
posted @ 2017-11-12 02:39 CanntBelieve 阅读(296) 评论(0) 推荐(0)

摘要: 显然, lookup-method 的name 对应的方法 是可以有方法参数的, 但是, 我发现, 参数无法传递, 传过去的参数好像被丢入了黑洞一般。。。 非常奇怪。 lookup-method 的name 即 对应的方法 不能是private, 也不能是 static , 这个应该是由 cglib 阅读全文
posted @ 2017-11-12 02:13 CanntBelieve 阅读(270) 评论(0) 推荐(0)

摘要: 初始化bean的堆栈: spring 初始化bean 的时候会使用一个 initializationStrategy, 默认就是 SimpleInstantiationStrategy, 关键就在于 它的 instantiate方法: 这里instantiateWithMethodInjection 阅读全文
posted @ 2017-11-12 01:48 CanntBelieve 阅读(834) 评论(0) 推荐(0)

2017年11月11日

摘要: 这两者常常是一起出现的,或者说他们经常是一起被使用的。但是其实是分为了两种情况: 1 同时使用factory-bean 和 factory-method 如果,我们在一个bean 元素上同时配置 factory-bean 和 factory-method, 那么意思就是说, 这个bean 的创建就使 阅读全文
posted @ 2017-11-11 22:15 CanntBelieve 阅读(2122) 评论(0) 推荐(0)

摘要: init-method 是bean (第一次)实例化的时候被调用的。 先看个异常: 从 AbstractApplicationContext.getBean 调用,可见,它是在 getBean 阶段被调用的。 再看位于AbstractAutowireCapableBeanFactory的源码: in 阅读全文
posted @ 2017-11-11 20:05 CanntBelieve 阅读(1180) 评论(0) 推荐(0)

摘要: 我们知道 spring xml 配置中 bean 的子元素 property 是按照 setXxx(SomeType someParam) 方式来设值的,换句话说, 是根据属性的setter 方法, 而不是根据 属性的名字。 有多少个 setter ,那么就可以进行多少次的 <property> 赋 阅读全文
posted @ 2017-11-11 19:00 CanntBelieve 阅读(961) 评论(0) 推荐(0)

摘要: 1 lazy-init lazy-init是延迟初始化的意思。 spring中容器都是尽早的创建和配置所有的单例bean,因此当容器在启动时,就会去配置和创建单例bean。 默认情况下 beans 的lazy-init 是没有配置的,就相当于是: bean 的 lazy-init 默认继承于 bea 阅读全文
posted @ 2017-11-11 16:54 CanntBelieve 阅读(828) 评论(0) 推荐(0)

摘要: 从一个异常探索autowired 的原理。 首先环境是这样的: xml 是这样的: 测试类: 结果是出现异常: spring 的启动过程中会读取配置的xml,注册所有的 beanDefinition,这个是准备过程。 准备完后是 beanfactory 的refresh ,这个时候会 进行注解的处理 阅读全文
posted @ 2017-11-11 15:10 CanntBelieve 阅读(1528) 评论(0) 推荐(1)

2017年11月1日

摘要: 师父带入门,修行靠个人 很多时候,看了太多他人(包括众多高手大牛)的博客,文章。 自己并没有真正的成长。因为,别人的始终是别人的,自己无法一下理解透彻。 理解上总是会遇到诸多各种问题。道理就像看过很多书籍,听过很多付费专栏,自己可能并没有什么成长是一样的。做这些事情费时费力,有时候还真不如自己独力的 阅读全文
posted @ 2017-11-01 14:53 CanntBelieve 阅读(383) 评论(0) 推荐(0)

2017年10月31日

摘要: 原理 我们都知道,浏览器无状态的。浏览器是操作不了session的,浏览器能够做的只是传递cookie,每次都传递。 把当前主机下的,和当前请求相同域下的cookie 传递到服务器去,只要cookie没过时。 当我们第一次访问某个web 应用的时候,比如 http://localhost:8080/ 阅读全文
posted @ 2017-10-31 20:03 CanntBelieve 阅读(597) 评论(0) 推荐(0)

摘要: 通过前文 Tomcat 之session 持久化1 ,我们已经大概了解了这么个机制。但是我没能详细展开其底层的原理。 这篇文章,我想稍微深入一点点,再继续聊一聊其底层。 Tomcat 之session 持久化的作用: 这样做的好处是:减少系统资源的占用,如果Servlet容器突然关闭或重启,或Web 阅读全文
posted @ 2017-10-31 01:08 CanntBelieve 阅读(636) 评论(0) 推荐(0)

2017年10月29日

摘要: Tomcat 之session 持久化原理 几个概念: Manager 接口,其实就是指的是对 其Sesison 的管理, 其默认实现是StandardManager (内部没有任何Store对象实例,而仅仅是通过 File 序列化实现的),它其实就是把session 保存到了本地的名为SESSIO 阅读全文
posted @ 2017-10-29 14:57 CanntBelieve 阅读(1436) 评论(0) 推荐(0)

2017年10月26日

摘要: UTC ,Coordinated Universal Time GMT ,Greenwich Mean Time GMT和UTC 一般来说是意义几近相同的, 不过 UTC Coordinated Universal Time 比 Greenwich Mean Time GMT 快了1分钟58秒, 也 阅读全文
posted @ 2017-10-26 10:31 CanntBelieve 阅读(928) 评论(0) 推荐(0)

2017年10月21日

摘要: 开始是 javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer, 不能理解为什么,后面想到自己之前代码是好好的,修改了bean 之后才出现这个问题的。 具体来说 阅读全文
posted @ 2017-10-21 09:37 CanntBelieve 阅读(12093) 评论(0) 推荐(0)

2017年10月20日

摘要: 同事提交了一些文件,我尝试更新那个目录, 却总是无法更新到他的提交, 一直都是工作空间的内容。而且资源管理器的目录图标显示, 出现变动(就是右上角有个红色的那种)。 难道同事没有提交成功吗? 检查svn log, 发现他确实是成功提交了的。。那就奇怪了! 我把那个目录备份,然后全部删除,再更新,还是 阅读全文
posted @ 2017-10-20 12:14 CanntBelieve 阅读(567) 评论(0) 推荐(0)

2017年10月7日

摘要: 配置好后,发现网上已经做好的了, 不过,跟我的稍有不同, 我这里再拿出来现个丑: properties 文件自不必说,关键是这里的xml: 因为,我们使用了 MapperScannerConfigurer ,dao bean是spring 动态生成的,我们可以不用写dao 实现了。 但是我们需要配置 阅读全文
posted @ 2017-10-07 14:25 CanntBelieve 阅读(799) 评论(0) 推荐(0)

2017年9月25日

摘要: ThreadPoolExecutor 概述: 构造函数: 4个构造函数, 其实最终都是调用了这个: RejectedExecutionHandler 有这么几种: AbortPolicy 直接抛出异常CallerRunsPolicy 使用用户线程运行, CallerRunsPolicy其实保证了 无 阅读全文
posted @ 2017-09-25 01:16 CanntBelieve 阅读(379) 评论(0) 推荐(0)

2017年9月15日

摘要: currentThread() 到底是什么? 其实currentThread() 只是Thread 的一个静态方法。返回的正是执行当前代码指令的线程引用: 换句话说, Thread.currentThread() 返回的是 一个实例。 只不过呢, 这个实例确实比较特殊。 这个实例是当前Thread 阅读全文
posted @ 2017-09-15 19:08 CanntBelieve 阅读(21452) 评论(2) 推荐(1)

2017年9月12日

摘要: 目录 Swagger简介 4 安装 4 一、 Node.js 安装 4 二、 node中http-server安装 4 三、 下载swagger-editor 4 四、 启动 swagger-editor 5 五、 使用浏览器访问http://localhost 5 使用 5 一、 编写API 文档 阅读全文
posted @ 2017-09-12 15:11 CanntBelieve 阅读(65051) 评论(1) 推荐(7)

摘要: 公司需要用到在线的流程编辑器,我研究了下activiti,activiti-explorer 是一个 web流程编辑工具,根据我了解到的情况。 activiti-explorer web流程编辑工具 是和activiti 紧密结合到一起了的。 activiti-explorer 前端使用了 angu 阅读全文
posted @ 2017-09-12 12:01 CanntBelieve 阅读(3240) 评论(1) 推荐(2)

2017年9月11日

摘要: Jenkins 之邮件配置其实还是有些麻烦的,坑比较多,一不小心就。。。我是走了很多弯路的。 这里记录下来,希望大家以后不要重蹈覆辙: 我测试过,这里的 Extended E-mail Notification 好像没什么用, 随便写都不会报错,也不影响结果。 不知道干嘛的。 选中上面的“通过发送测 阅读全文
posted @ 2017-09-11 17:55 CanntBelieve 阅读(3699) 评论(0) 推荐(0)

摘要: 安装就不说了, 因为安装实在是很简单的。 Jenkins基础配置 配置jdk 和maven 进入Global Tool Configuration, 配置JDK: 一般不要选择自动安装, 否则下载半天还可能会失败。 而且从oracle 下载可能还需要注册,认证, 很烦。 配置Maven: 同样,不要 阅读全文
posted @ 2017-09-11 11:54 CanntBelieve 阅读(801) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页