- 浏览: 50621 次
- 性别:
- 来自: 南京
最新评论
文章列表
1.线程
2.线程池
1.线程
Thread
Runnable
Callable,FutureTask
2.线程池
java.uitl.concurrent.ThreadPoolExecutor
Executor Executors ExecutorService
web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
org.springframework.web.context.ContextLoaderListener --- ServletContextListener
web.xml
<context-param>
<param-name>contextClass</ ...
微服务系统设计(元素)
- 博客分类:
- codes
以springboot框架来设计一个微服务系统,可以利用现有的springcloud微服务体系,可以大大节省开发人员的开发时间
springcloud解决的是企业开发过程中,会遇到的各种问题,节省企业效率。但这些框架对开发者的技术提升或对技术的理解来说并不是好事。这就相当于公司买了一些技术产品,然后开发的过程中,技术人员调用它们,要在以前这些技术产品都要技术人员开发,现在开发人员完全纯写业务。对技术有追求的人,对springcloud做到会用就行。
任务一门技术或框架的诞生都是围绕着企业开发遇到的问题而应用而生的,这可以技术人员看轻技术的一个原因。
以企业遇到的问题为例:
配置文件(配置 ...
本篇章从核心类角度解读springmvc的原理
web.xml(一级):
DispatcherServlet
extends FrameworkServlet
extends HttpServletBean
extends HttpServlet
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</serv ...
事务由spring管理,可以理解为由spring管理数据库连接。ibatis执行sql时,需保证获取的数据库连接与spring管理的数据库连接是同一个
这篇文章主要从ibatis的角度分析,ibatis如何获取spring中管理的数据库连接(这里最主要的是用到了ThreadLocal技术)
应用配置:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataS ...
提示:
BeanPostProcessor
AopUtils
代理模式
spring中<aop:config/>,<tx:annotation-driver/>,<aop:aspectJ>等配置看似复杂,其实本质就是PointCut,BeanPostProcessor,AbstractAutoProxyCreator一些接口直接的解耦
查找的Advisor用到了模板方法设计模式和委托模式,创建代理类用到了代理模式
解析:
<tx:annotation-driven transaction-manager="transaction ...
java程序员5年后的技术思考(2018)
- 博客分类:
- java
5年前,做的项目只在单机上运行,数据量不大,3大框架+一个数据库是标配
5年后,项目集群部署,数据量大,编程中要考虑分布式锁,分库,缓存等。考虑项目时,需要加入新的元素,势必也会引入新的问题
现在开发中,哪些想法 ...
eclipse导入spring源码
- 博客分类:
- spring
spring在git上的项目时gradle管理jar包的,所以一般下载源码前先在eclipse上配置gradle环境
#安装gradle
1.安装gradle
1.1 下载gradle,并解压到指定目录
1.2 配置gradle环境
GRADLE_HOME=D:\Program Files\gradle-2.3
path添加%GRADLE_HOME%\bin;
在cmd中执行:gradle -version 查看是否配置成功
1.3 eclipse安装gradle插件-作为gradle项目导入eclipse需要安装
在线安装
https://blog.csdn.net/wzj0 ...
ApplicationContext容器的初始化可以通过模板方法设计模式概括
abstractApplicationContext#refresh是模板方法,定义了算法架构.其中
// Tell the subclass to refresh the internal bean factory.
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
// Allows post-processing of the bean factory in context subclasses.
p ...
springmvc的核心是DispatcherServlet
研究DispatcherServlet的设计分2个角度
1.DispatcherServlet的初始化
2.DispatcherServlet的访问
DispatcherServlet的初始化可以用模板方法设计模式概括
DispatcherServlet#init
@Override
public final void init() throws ServletException {
if (logger.isDebugEnabled()) {
logger.debug("Initializin ...
squid缓存配置
- 博客分类:
- exceptions
springmvc+freemarker实现web访问
服务器端,客户端缓存都设置为没有缓存
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="requestContextAttribute" value="rc" ...
function notNull(id) {
var flag = true;
var data = jQuery("#"+id+" input[notNull]");
var textareaData = jQuery("#"+id+" textarea[notNull]");
data = jQuery.merge(data,textareaData);//合并集合
var project;
data.each(function(){
pro ...
<style>
#bg{display:none;position:fixed;width:100%;height:100%;background:#000;z-index:2;top:0;left:0;opacity:0.7;}
</style>
<script>
function showMask() {
document.getElementById("bg").style.display ="block";
}
function hideMask() ...
<html>
<head>
<style type="text/css">
.STYLE1 {
color: #FF0000;
font-weight: bold;
}
.blueBtn {
background:#5B9BD5 none repeat scroll 0 0;
color:#FFFFFF;
font-size:10px;
height:28px;
width:70px;
letter-spacing:1px;
}
.grayBtn {
background:#7F7F7F n ...
封装spring-security
- 博客分类:
- spring
github地址:
https://github.com/newjava1/SpringSecurity.git
SpringSecurity
1.应用说明
SpringSecurity是maven管理的应用,采用mvc模式,包括若干子项目。
SpringSecurity-Common封装了spring-security的配置,提供权限管理的service层,控制层才采用springmvc或struts2,持久层采用hibernate或ibatis;
SpringSecurity-Action封装了struts的控制层代码;
SpringSecurity-Controller封装了s ...