一、Spring概念
1.Spring是开源的轻量级框架。
2.Spring核心主要有两部分:
(1)aop:面向切面编程,扩展功能不是修改源代码实现,而是通过配置文件。
(2)ioc:控制反转。(对象的创建不是通过new方法来实现,而是通过Spring配置创建类对象)
3.Spring是一站式框架,在Java EE三层结构中,每一层都提供不同的解决技术。
Web层:Spring MVC
Service层:Spring的ioc
Dao层:Spring的jdbc Template
4.Spring版本:现阶段用的都是Spring 4.x版本。
二、IOC底层原理
1.ioc底层原理使用技术
(1)xml配置文件
(2)dom4j解决xml
(3)工厂设计模式
(4)反射机制
2.目的:使用ioc主要是为了解耦合,减低类与类之间的耦合度。所谓的耦合度,是指程序中,模块与模块之间信息或参数依赖的程度。
三、IOC使用案例
1.新建web工程,导入相应的jar包。
2.在scr下创建Spring配置文件,官方建议命名为applicationContext.xml。
在xml文件中写入
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="com.org.ioc.User"></bean>
</beans>
3.新建user类。
package com.org.ioc;
public class User {
public void add(){
System.out.println("add.....");
}
}
4.新建测试类。
package com.org.ioc;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IocTest {
@Test
public void testIoc() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("user");
System.out.println(user);
user.add();
}
}
程序输出结果:
com.org.ioc.User@12cdcf4
add.....
总结:使用IOC可以改变传统的new一个对象的方式,而是采用反射机制来创建对象,降低耦合度。
四、Spring的bean管理(xml方式)
1.bean实例化的方式:
(1).使用类的无参数构造创建,如果类里面没有无参数的构造,会出现异常。
(2).使用静态工厂创建,创建静态类的方法,返回类对象。
(3).使用实例工厂创建,创建不是静态的方法,返回类对象。
2.bean标签常用属性
(1)id属性:起名称,id属性值名称任意命名
- id属性值,不能包含特殊符号
- 根据id值得到配置对象
(2)class属性:创建对象所在类的全路径
(3)name属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号
(4)scope属性
- singleton:默认值,单例
- prototype:多例
- request:创建对象,把对象放到request域里面
- session:创建对象,把对象放到session域里面
- globalSession:创建对象,把对象放到globalSession里面