Spring_1_基础

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)

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约束





找到最后一个文件,用浏览器打开,里面有约束的定义,可以直接复制。在浏览器中从后往前找约束的定义。



配置文件中需要的约束(引入约束):要能看懂


(3)配置对象的创建
<!-- ioc入门-->
<bean id = "user" class="cn.itcast.ioc.User"></bean>
id:[可以随意命名,这里用全小写类名]
class:[类的全路径]

第四步 写代码测试对象创建

test中创建对象

User user = (User) context.getBean("此处用的是id值");

(1)这段代码仅在测试中使用






猜你喜欢

转载自blog.csdn.net/xindolia_ring/article/details/80167322