Spring概念
1.Spring是开源的轻量级的框架
2.Spring核心主要由两部分
(1)aop:面向切面编程,扩展功能不是通过修改源代码实现
(2)ioc:控制反转:
*比如有一个类,在类里面有一个不是静态的方法,
调用类里面的方法,创建类的对象,使用对象调用方法,
创建类对象的过程,需要new出对象;
*把对象的创建交给spring配置创建类对象(不需要new)
3.Spring是一站式框架
(1)spring在javaee三层结构中,每一层都提供不同的解决技术
*web层:springMVC
*service层:spring的ioc
*dao层:spring的jdbeTemplate
4.spring版本
(1)hibernate5.x
(2)spring4.x
Spring的ioc操作
1.把对象的创建交给spring进行管理
2.ioc操作两部分
(1)ioc的配置文件方式
(2)ioc的注释方式
IOC底层原理
1.ioc底层原理使用技术
(1)xml配置文件
(2)dom4j解决xml
(3)工厂设计模式
(4)反射
2.分析ioc实现原理
(1)
//调用类里面的方法
(2)
解决方法:使用工厂模式解耦和
第一步 创建xml配置文件,配置要创建对象类
第一步 导入jar包
(1)解压资料zip文件
jar特点:都有三个jar包 release,Javadoc,ources
core container:beans, core, context, spEL
(2)做spring最基本功能的时候,导入四个核心的jar包就可以了
(3)导入支持日志输入的jar包(log4j, logging)
第二步 创建类,在类里面实现方法
第三步 创建spring配置文件,配置创建类
(1)spring核心配置文件名称和位置不是固定的,建议放到src下面,
官方建议(命名为)applicationContext.xml
class:[类的全路径]
第四步 写代码测试对象创建
1.Spring是开源的轻量级的框架
2.Spring核心主要由两部分
(1)aop:面向切面编程,扩展功能不是通过修改源代码实现
(2)ioc:控制反转:
*比如有一个类,在类里面有一个不是静态的方法,
调用类里面的方法,创建类的对象,使用对象调用方法,
创建类对象的过程,需要new出对象;
*把对象的创建交给spring配置创建类对象(不需要new)
3.Spring是一站式框架
(1)spring在javaee三层结构中,每一层都提供不同的解决技术
*web层:springMVC
*service层:spring的ioc
*dao层:spring的jdbeTemplate
4.spring版本
(1)hibernate5.x
(2)spring4.x
Spring的ioc操作
1.把对象的创建交给spring进行管理
2.ioc操作两部分
(1)ioc的配置文件方式
(2)ioc的注释方式
IOC底层原理
1.ioc底层原理使用技术
(1)xml配置文件
(2)dom4j解决xml
(3)工厂设计模式
(4)反射
2.分析ioc实现原理
(1)
public class User {
public void add() {
......
}
}
//在servlet调用User类里面的方法
//调用类里面的方法
User user = new User();
user.add();
*缺点:耦合度太高
(2)
解决方法:使用工厂模式解耦和
public class UserService {
public void add() {}
}
//创建工厂类
public class Factory {
//提供返回UserService对象的方法
public static UserService getService() {
return new UserService();
}
}
public class UserServlet {
UserServlet s = Factory.getService();
s.add();
}
//但是存在servlet和工厂类耦合
(3)思想:高内聚低耦合--ioc
第一步 创建xml配置文件,配置要创建对象类
<bean id="userService" class="cn.itcast.UserService"/>
第二步 创建工厂类,使用dom4j解析配置文件+反射
public class UserFactory {
//返回UserService对象的方法
public static UserService getService() {
//1.使用dom4j解析xml文件
//根据id值userService, 得到id值对应的class属性值
String classValue = "class属性值"
//2.使用反射创建类对象
Class clazz = Class.forName(classValue);
//创建类对象
UserService service = clazz.newInstance();
return service;
}
}
public class UserService {
......
}
public class UserServlet {
//在servlet中得到serve的对象
UserFactory.getService();
}
IOC入门案例
第一步 导入jar包
(1)解压资料zip文件
jar特点:都有三个jar包 release,Javadoc,ources
core container:beans, core, context, spEL
(2)做spring最基本功能的时候,导入四个核心的jar包就可以了
(3)导入支持日志输入的jar包(log4j, logging)
第二步 创建类,在类里面实现方法
package cn.itcast.ioc;
public class User {
public void add() {
System.out.println("add...");
}
public static void main(String[] args) {
User user = new User();
user.add();
}
}
第三步 创建spring配置文件,配置创建类
(1)spring核心配置文件名称和位置不是固定的,建议放到src下面,
官方建议(命名为)applicationContext.xml
(2)引入schema约束
在Spring的配置文件中找schema约束
找到最后一个文件,用浏览器打开,里面有约束的定义,可以直接复制。在浏览器中从后往前找约束的定义。
配置文件中需要的约束(引入约束):要能看懂
<!-- ioc入门-->
<bean id = "user" class="cn.itcast.ioc.User"></bean>
id:[可以随意命名,这里用全小写类名]
class:[类的全路径]
第四步 写代码测试对象创建
test中创建对象
User user = (User) context.getBean("此处用的是id值");
(1)这段代码仅在测试中使用