`
文章列表
            模拟了spring容器的依赖注入,其实spring内部也是通过反射机制来实现的控制反转。主要是看下spring包下的ClassPathXmlApplicationContext类的实现。           完整代码如下:          package com.bjsxt.model;          public class User {                    private String name;                    public  String getName() {                      ...
         依赖注入(DI),是spring容器实现的基础,在spring-core模块中实现的。所谓DI,就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动 ...
         IOC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象地说,即由容器动态地将某种依赖关系注入到组件之中。          下面我根据spring源码 简单实现自己的依赖注入  通过xml形式配置   在对象中获取xml文件 获取定义好的bean 从而对bean对应的class 实现实例化   使用接 ...
Java代码   package com.quan.hibernate.model;       import java.lang.reflect.Method;    import java.sql.Connection;    import java.sql.DriverManager;    import java.sql.PreparedStatement;    import java.sql.SQLException;    import java.util.HashMap;    import java.util.Map;   ...
       SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。   实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式 ...
        TCP/IP通信协议是一种可靠地网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间建立网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。         通过IP协议可以使Internet成为一个允许连接不同类型的计算机和不同操作系统的网络,但是IP协议只保证计算机能发送和接收分组数据。IP协议负责将消息从一个主机传送到另一个主机,消息在传递的过程中被分割成一个个的小包。IP协议不能解决数 ...
           目录:              1 synchronized的作用域              2 线程的状态及线程类的一些常用方法:              3 一个简单多线程通信的例子:              1 synchronized的作用域:              假设存在如下条件:2个线程(ThreadOne and ThreadTwo),1个类(TestObject), 3个TestObject的实例(object, object1 and object2). 构造函数如下:              ThreadOne ...
数据库中存储的日期的格式和sql中的日期的格式是不一样的。 SQL> insert into test_date values (to_date('2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss')); 已创建 1 行。 SQL> select to_char(date_col, 'syyyy-mm-dd hh24:mi:ss') dat, dump(date_col) dump_date from test_ ...
下面要讲的是 TIMESTAMP 类型。 create table test_time (col_time timestamp); SQL> insert into test_time values (to_timestamp('0001-1-1 0:0:0.0', 'syyyy-mm-dd hh24:mi:ss.ff')); 已创建 1 行。 SQL> insert into test_time values (to_timestamp('2000-1-1 0:0:0.0', 'syyyy-mm-dd hh24:mi:ss.ff')); 已创建 1 行。 ...
日期的组成部分为:世纪、年度、月度、天、时、分、秒。世纪又分为:公元前、公元后。所以只需存储这7部分,即可。 create table TEST_DATE (   DATE_COL DATE ); SQL> insert into test_date values (to_date('2000-1-1 0:0:0', 'yyyy-mm-dd hh24:mi:ss')); 已创建 1 行。 SQL> insert into test_date values (to_date('1-1-1 0:0:0', 'yyyy-mm-dd hh24:mi:ss')); 已创建 ...
任何一个实数都是可以表示为:S=A.B*10n(10的n次方)。则我们只是需要存储A.B(数据部分),n(最高表示位)即可。可是oracle 还存储了符号位(负数需要用到)。 create table test_number ( num_col number); SQL> INSERT INTO TEST_NUMBER VALUES (0); 1 row inserted SQL> INSERT INTO TEST_NUMBER VALUES (1); 1 row inserted SQL>  INSERT INTO TEST_NUMBER VALUES ( ...
Oracle 字符串格式 首先介绍:char(N) 和Varchar2(N)格式 create table TEST_CHAR ( CHAR_COL    CHAR(10), VARCHAR_COL VARCHAR2(10), ); SQL> insert into test_char(char_col, varchar_col ) values ('123','123'); SQL> commit; SQL> select char_col,dump(char_col,16) as d_char_col ,  varchar_col,dump(varchar_col, ...
Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。 SQL> create table test_rowid (id number, row_id rowid); 表已创建。 SQL> insert into test_rowid values (1, null); 已创建 1 行。 SQL> update test_rowid set row_id = rowid where id = 1; 已更新 1 行。 SQL> commit; 提交完成。 SQL ...
          多对多其实是个很复杂的关系,hibernate在进行处理的时候借助中间表或者中间类。中间表是在映射文件的关联标签(比如集合标签<set>)中由table属性指定的由hibernate自动生成的表,它只有两个字段,分别由<key>和<many-to-many>标签的table属性指定,作为外键分别用来指向关联双方表的主键。中间类就是把我们的中间表抽象生成一个实体类,在映射的时候分别和两个关联类构成一对多的关系,即演变成两个一对多来处理。           以下用中间表的例子来说明单向多对多关系映射:运动员(player)与角色(role)就 ...
        集合属性大致有两种:第一种是单纯的集合属性,如像 List、Set 或数组等集合属性;另一种是Map结构的集合属性,每个属性值都有对应的Key映射。          集合映射的元素大致有如下几种:          List: 用于映射 List 集合属性          Set: 用于映射 Set 集合属性          Map: 用于映射 Map 集合性          Array: 用于映射数组集合属性          Bag: 用于映射无序集合          idbag: 用于映射无序集合,但为集合增加逻辑次序          1 ...
Global site tag (gtag.js) - Google Analytics