一些笔记整理

                               随笔

1.深度克隆和浅克隆的区别
浅克隆只是拷贝本对象,其对象内部的数组、引用对象等都不拷贝,还是指向原生对象的内部元素地址
深复制把要复制的对象所引用的对象都复制了一遍
浅克隆实现:被克隆的对象必须实现Cloneable,Serializable这两个接口
深克隆实现:两种方式
第一种在浅克隆的基础上实现
第二种通过序列化和反序列化

MyBatis:一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射
mybatis与hibernate的比较:
mybatis是半自动ORM框架,必须写SQL,支持事务处理,缓存都支持
hibernate是全自动ORM框架,可以不写SQL,支持事务处理,缓存都支持,二级缓存比mybatis更好
mybatis接口的使用方式必须满足三个一致:
映射文件的namespace的值必须是接口的全路径名称 比如:com.bb.dao.UserMapper
接口中的方法名在映射文件中必须有一个id值与之对应
映射文件的名称必须和接口的名称一致

配置文件的相关结构:
configuration 配置
properties 属性 resource=“db.properties”(外部属性文件)引入数据库配置
settings 设置
typeAliases 类型别名
typeHandlers 类型处理器(实现java类型和数据库类型之间的转换,可自定义类型转换List<->VARCHAR)
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
databaseIdProvider 数据库厂商标识
mappers 映射器(扫描包package,mapper文件名和mapper接口必须一致)

log4j:
可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;
可以控制每一条日志的输出格式;
通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。
上述可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

聚合工程:
parent pom 管理(无需写代码)
manager pom 管理 (指定parent为父项目)
dao(jar) service(jar) model(jar) commons(jar) controller(war)
聚合工程:
parent pom 管理(无需写代码)
manager pom 管理 (指定parent为父项目)
dao(jar) service(jar) model(jar) commons(jar) controller(war)
依赖关系:
controller依赖service service依赖dao dao依赖model和commons
依赖具有传递性(controller最终会有所有的依赖
dao持久层添加对spring的依赖(spring-context|spring-orm|aspectj|mysql)—controller也会有
controller控制层添加对springmvc的依赖(spring-webmvc|jstl|servlet-api|standard)

你可能感兴趣的:(笔记)