`
thaIm
  • 浏览: 90204 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
承接前一篇Spring --- IOC,继续IOC的介绍 6) 方法注入    首先说说方法注入的使用场景:    当一个singleton bean A 在每次方法调用的时候都需要一个non-singleton bean B,此时就会产生这样一个问题,因为A为singleton,所以容器只会创建一次A,那么也只有一次机会来创建A的属性,无论你是通过setter还是constructor方式注入Bean B,Bean B也只能被初始化一次,而实际需求是我们调用每个方法的时候又都需要一个新的Bean B实例。而方法注入就是解决这个问题的方法之一。具体看看如何实现: package fiona. ...

Spring --- IOC

一) IOC其实很简单    什么是IOC(控制反转)? 这名词听起来玄乎,其实so easy。简而言之,就是通过配置文件来反过来控制代码变化。广义上说,凡是你使用了配置文件的形式来提高代码的灵活性和通用性的,都可以说是一种控制反转。因为那部分由配置文件决定的逻辑便是你将控制权从代码手中反转到配置文件中的运用。(一家之言,仅供参考。也许片面也许错误~~)。总结来说,所谓“控制反转”的概念就是:控制权由应用代码中转到了外部容器,控制权的转移就是所谓反转。    那么,如何实现IOC呢?这更简单,只要知道怎么载入配置文件的人都可以定义一套解析规则来实现。但如果每人一套自己的规则这显然IOC界就变得各 ...
一)什么是vi   vi是所有Linux Unix AIX操作系统都会配备的文件编辑器。用过vi的人或多或少都会觉得它有点难用。本人也不例外,所以这里做个笔记整理,以供参考。网上这类的介绍一搜一堆,此处我也没什么新意,只是自己动手写一遍。一来是加深记忆,二来便于以后翻阅。 二)三种操作模式    vi一共有三种操作模式:        1. Command mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段。        2. Insert mode:唯一可做文字数据输入的模式。        3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字 ...

JDBC

    博客分类:
  • J2EE
一)什么是JDBC     也许这个问题过于“入门级”。但由浅入深,咋们零基础开始~~     JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API     换句话说,写java,当需要与数据库进行交互时,我们就需要用到JDBC来实现其交互功能。也许有些框架(比如hibernate)可以提供另外形式的数据库交互模式,但这些无非是在JDBC的基础上做了更有效的封装。归根结底,java都是通过JDBC与数据库进行交互的。 二)JDBC的使用   1)样例代码     典型的样例代码如下: // 1.注册驱动 ...
一)什么是WebSphere    先网上抄一段:WebSphere 是 IBM 的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的集成软件。     所以,一句话:WebSphere 是一系列软件的集合。而这些软件中占最重要地位的无疑就是WebSphere Application Server(简称WAS)。因为WebSphere Application Server是WebSphere平台的基础,其他所有产品都在它之上运行。     那么, ...
一) 重叠构造器模式的问题     不知道大家在编程时有没有遇到过这样一个问题。我们的构造函数需要传入很多参数,有些参数是必需的,有些参数是可选的。于是为了满足各种情况下的构造,我们可能会采用重叠构造器模式的方法。就像下面这个例子: public class NutritionFacts{ private final int servingSize; //(ml) required private final int servings; //(per container) required private final int ca ...

移位运算符

一) 移位运算符的种类    java中的移位运算符一共分3种,它们分别是:    1 左移 <<      例: 3<<2 将数字3左移2位          3 转换为2进制数(4 bytes):  0000 0000 0000 0000 0000 0000 0000 0011          左移2位,低位补零: 0000 0000 0000 0000 0000 0000 0000 1100          再转换为十进制数: 12    2 带符号右移 >>      注: java中负数的存储以补码(符号位保持不变,其他位是存储数的绝对值按位取 ...
一)什么是Spring   在java领域,当我们提起Spring一词时大概会有如下的含义:   1) spring projects:spring众多开源项目的总称。它包含的开源项目有:                            Spring AMQP                            Spring Android                            Spring Batch                            Spring Data                            Spring Framework    ...
一)工厂模式简介     工厂模式是我们用于创建对象时所使用的模式。它大致可细分为三种:简单工厂模式(因为通常是使用静态函数实现该模式,所以又名静态工厂模式)、工厂方法模式以及抽象工厂模式。简单工厂模式顾名思义,其非常简单。简单到人们甚至开始讨论它还能不能算是一种设计模式。也许我们称其为一种编程习惯更为合适。但不管怎样,它是工厂方法模式和抽象工厂模式的基础。在简单工厂模式的基础上,当问题向两个不同的方向发展变得复杂时,才派生出了工厂方法模式和抽象工厂模式。     话不多说,让我们现在就从简单工厂模式开始... 二)简单工厂模式     先来看看一段丑陋的匹萨店订购匹萨的代码吧:     那 ...
一)何为观察者模式     先来看看观察者模式的定义吧:对象之间一对多的依赖,这样一来,当一个对象(subject)改变状态时,它的所有依赖者(observer)都会收到通知并自动更新。     一个经典的例子便是: 出版者 + 订阅者 = 观察者模式。 如果你了解报纸订阅是怎么回事,其实就知道观察者模式是怎么回事。只是名称不太一样,出版者改称为subject, 订阅者改称为observer。对象只要订阅(add),就可以成为订阅者(observer),一旦出版者(subject)有新消息发布,订阅者就会知道。当然,当一个订阅者不再想订阅时,只需退订(remove)即可。     让我们先来看看 ...
一) 什么是单件模式      很简单,使代码只能实例化一个实例的设计模式。怎么做,看个典型样例:     如上图,把握3个注意点吧:     1)uniqueInstance 必须用 private static 修饰     2)构造函数必须 private     3)函数getInstance() 必须 static 二)单件模式的多线程处理     显然,以上单件模式的代码不支持多线程。(如何多线程冲突的这里就不多解释了,出问题的就是:if( uniqueInstance == null) { uniqueInstance = new Singleton(); } 这句啦 ) ...
一)先聊聊那只鸭子     大家还记得F4写的那本《设计模式》么。那里的第一章介绍的便是策略模式。那个会飞的鸭子可谓是说明策略模式的经典。深入浅出的阐述了策略模式的使用场景和使用方法。这里我不过是再简略的介绍 ...

Java Generics

一)泛型的作用       相对于依赖程序员来记住对象类型、执行类型转换——这会导致程序运行时才发现错误,很难调试和解决。 泛型的主要好处就是让编译器保留参数的类型信息,执行类型检查,执行类型转换操作:编译器 ...
一) 何为序列化(Serialize)     将Java 对象序列化为二进制文件的技术称为序列化。 二)何时需要使用到序列化技术     大致三种情况吧:     a)当你想把的内存中的对象写入到硬盘的时候;     b)当你想用套接字在网络上传送对象的时候;     c)当你想通过RMI传输对象的时候; 三)Hello, Serialize     话不多说,给个简单例子:     import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
一) 引言:    当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具。正所谓“工欲善其事,必先利其器。”如果能用好这些工具,它们将大大方便你的开发。它们的实用和方便有时甚至会使你惊讶的发 ...
Global site tag (gtag.js) - Google Analytics