SSM框架 之 Spring-IOC
一、Spring概述
1、Spring概述
①Spring是一个开源框架
②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
③Spring是一个IOC(DI)和AOP容器框架。
④Spring的优良特性
[1]非侵入式:基
Spring源码探究 之 IOC容器的实质
IOC容器初始化时,创建所有单例的bean,今天深入探索IOC容器的实质:
IOC容器初始化即创建ClassPathXmlApplicationContext对象,如下:
ApplicationContext ioc = new ClassPathXmlApplicationContex("applicationContext.xml");
其内部的创建代码如下:
ClassPathX
SSM框架 之 Spring-AOP(面向切面编程)
1AOP概述
AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。
两种编程思想。是对面向对象编程的一种补充。
面向切面编程:是指在程序运行期间将某段代码,动态的切入到某个类的指定方法的指定位置的这种编程思想叫做面向切面编程。
AOP编程操作的主要对
SpringMVC一次请求过程源码分析
今天来探索SpringMVC一次请求过程的源码,首先需要找到程序运行的类及主要方法:
我们使用StringMVC首先需要在web.xml中设置一个前端控制器来处理请求,这个前端控制器是:org.springframework.web.servlet.DispatcherServlet
那么我们程序运行的入口就在这里。
从这里可以看出前端控制器是一个Servlet,
理解多线程 之 40问题
前言
个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。
这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因
SpingMVC源码探究 之 解析HttpServletRequest参数
我们来探究SpingMVC是如何解析方法入参的。
首先设置的handler如下:在执行方法处、及DispatherServlet的doDispath()方法设置断点开始执行方法
@Controller
public class TestHandler {
@RequestMapping("/testParam1")
public String testParam1(String usern
ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决
说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文检索,功能很牛逼,但是接到了任务不想做也不行,
leader让我搭建一下分布式的ES集群环境,用来支持企业信用数据的检索,刚开始宝宝一脸蒙逼,只是之前自己本地搭建过一个测试玩过,开发任务也是忙的不行,
一直也没时间好好的研究一下,惭愧。《Elasticsearch服务器开发》已经备好,只能边学边开发了,希望
SpringMVC从request中获取参数的原理
servlet原生:将查出的数据放在request、session、application域中
测试代码:
@RequestMapping("/testApi")
public void testApi(HttpServletRequest request, HttpServletResponse response) {
System.out.println(request.getP
SpringMVC之ModelAttribute注解
ModelAttribute注解
这个注解可以批注在方法上,也可以放在属性前
工作原理:
1)、在某个方法上标注ModelAttribute注解,那么这个方法在目标方法执行前会优先执行
2)、我们在ModelAttribute注解标注的方法入参中传入一个Map,
这个map最终的类型BindingAwareModelMap,就是目标方法用的隐含模型的类型
3)
StaticCells静态单元格
今天是周末挺冷的,再有几天2015就结束了,提前祝大家新年快乐吧。闲话不多说,说咱们的静态单元格吧。静态单元格只能用在UITableViewController中,所以实例如下:
一、首先创建一个“Single View Application”项目,删除 Main.storyboard 中原有的视图控制器,添加一个 UITableViewController 视图控制器 ,再创建一个继承于UI
iOS NSFileHandle 基本用法介绍
NSFileHandle 此类主要是对文件内容进行读取和写入操作
NSFileMange 此类主要是对文件进行的操作以及文件信息的获取
常用处理方法
+ (id)fileHandleForReadingAtPath:(NSString *)path 打开一个文件准备读取
+ (id)fileHandleForWritingAtPath:(NSString
FMDB官方使用文档 G-C-D的使用
FMDB有三个主要的类
FMDatabase – 表示一个单独的SQLite数据库。 用来执行SQLite的命令。
FMResultSet – 表示FMDatabase执行查询后结果集
FMDatabaseQueue – 如果你想在多线程中执行多个查询或更新,你应该使用该类。这是线程安全的。
cocoa pods 1.0.0安装及问题解决
今天整一个刚到的设备,系统版本10.11.4,安装cocoapods,安装过程我就简单的复述一下,
第一步:
确保有Ruby环境,Mac中自带Ruby环境,可以根据ruby -v进行查看当前Ruby版本是否支持cocoapods。
第二步:
翻个墙,命令如下:
$ gem sources --remove https://rubygems.org/
iOS开发#pragma预处理指令与_Pragma操作符
#pragma 预处理指令
在C/C++标准中,#pragma是一条预处理的指令(preprocessor directive)。简单地说,#pragma是用来向编译器传达语言标准以外的一些信息。
整理代码
举个简单的例子,如果我们在代码的头文件中定义了以下语句:
#pragma mark - UITableViewDelegate
在你的 @implemen
Swift_Array的几个高级函数map, filter, reduce
map映射一个新数组
在这个例子中,“map”将第一个数组中的 element 转换为小写的字符串,然后计算他们的characters。
let cast = ["Vivien", "Marlon", "Kim", "Karl"]
let lowercaseNames = cast.map { $0.lowercased() }
// 'lowercaseNa
vm虚拟机下的ubuntu16.04配置静态ip(NAT方式)
最近在vm上写项目的过程中,需要通过windows上的navicat连接虚拟机上的mysql,发现每次重启虚拟机其下的ubuntu16.04系统ip都不一样,导致原先在navicat配置好的连接无法使用。于是就想到需要给vm中的系统配置一个不会变化的ip,经过上网查找相关资料,并根据自己的实践情况,现将整理一下笔记。 给vm虚拟机配置静态ip,可以使用交接的方式,但由于VAT方式配置的话集群会更好一些,所以推荐使用NAT方式。 1. 将主机网卡的网络共享给VMnet8 在桌面上找到【网络】--
BZOJ3626[LNOI2014]LCA——树链剖分+线段树
题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。 (即,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和) 输入 第一行2个整数n q。 接下来n-1行,分别表示点1到点n-1的父节点编号。 接下来q行,每行3个整数l r z。 输出 输出q行,每行表
今日推荐
周排行