数据源开发步骤
1、导入数据源的坐标和数据库驱动坐标
2、创建数据源对象
3、设置数据源的基本连接数据
4、使用数据源获取连接资源和归还连接资源
数据源(连接池)的作用
1、提高程序性能
2、事先实例化数据源,初始化部分连接资源
3、使用连接资源时从数据源中获取
4、使用完毕后连接资源归还给数据源
目前常用的数据源主要有c3p0、dbcp、proxool、druid
Spring 推荐使用dbcp;DBCP(DataBase connection pool)数据库连接池。Hibernate 推荐使用c3p0和proxool
IOC与DI的理解
IOC控制反转,不是一种技术,是一种思想。将设计好的对象交给容器去控制,不是直接new一个对象
IoC 容器控制了对象,主要控制了外部资源获取(不只是对象包括比如文件等)
有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。
DI依赖注入
应用程序依赖于IoC容器
IoC和DI由什么关系呢?其实它们是同一个概念的不同角度描述
同步该文章
怎么把UserDao注入到UserService内部呢?spring重点配置
1.5怎么把UserDao注入到UserService内部呢?
1、构造方法
2、set方法
1.6注入数据的三种数据类型
1、普通数据类型
2、引用数据类型
3、集合数据类型
1.7spring重点配置
标签
id属性:在容器中Bean实例的唯一标识,不允许重复
class属性:要实例化的Bean的全限定名
scope属性:Bean的作用范围,常用是Singleton(默认)(一个对象)和prototype(多个)
默认Bean实例化个数为1,protoype个数为2
标签:属性注入
name属性:属性名称
value属性:注入的普通属性值
ref属性:注入的对象引用值
标签
Bean实例化三种方式,Bean的依赖注入的概念
1.3Bean实例化三种方式(*)
1/无参构造方法实例化
2、工厂静态方法实例化
3、工厂实例方法实例化
1.4Bean的依赖注入的概念
依赖注入(Dependency Injection)是核心IOC的具体实现
在编写程序的时候,通过控制反转,把对象的创建交给Spring去管理,把UserService、UserDao都当成容器来有效管理。
就是解决我们的耦合问题,
但是代码中不可能出现没有依赖的情况。IOC 解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。
好处:易于维护,让框架吧dao层对象传入到service,不用手动去获取
spring是什么,spring优势是什么
1.1 spring是什么
spring是分层javase/ee应用的轻量级的开源框架,两个重要的特性是loc(Inverse of contol 反转控制)和AOP(面向切面编程)
1.2 spring的优势
1、方便解耦,简化开发
主要强调spring能提供IoC容器,可以将对象间的依赖关系交给Spring进行控制,避免了原来编码的耦合问题
2、AOP编程的支持
面向切面编程可以处理OOP面向对象编程的不足
3、声明式事务的支持
事务管理,开发效率
4、方便程序的测试
更边界的测试解决方案
5、方便集成各类框架
与Hibernate----》ssh
mabtis---->ssm
还有Struts/Hessian/Quartz等等各类的支持
6、降低了javaEE API的使用难度
把API封装起来,更方便使用
从有jdbc模板—》redis
Filter
ThreadLocal的使用
ThreadLocal的作用,它可以解决多线程的数据安全问题
它可以给当前线程关联一个数据
使用Filter和ThreadLocal组合管理事务
JSON
1、json的定义
JSON是JavaScript Object Notation,是一种轻量级的数据交换格式。
轻量级是什么?
指的是跟xml做比较,比xml更小,更快,更易解析
数据交换是客户端和服务器之间业务数据的传递格式
2、json的用法
var xxx = {
“key”:value,
};
[]保存数组
键值对构成
3、json存在的两种形式
是json对象 和 json字符串
两个常用的方法
JSON.stringify() 把json对象转换成为json字符串
JSON.parse() 把json字符串转换成为json对象
Java 枚举(enum)
Java 枚举(enum)
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天等。
enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:
values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。