Spring学习(一)

1 spring 是开元的轻量级框架

2 spring核心主要两部分

(1)aop:面向切面编程,扩张功能不是修改源代码实现

(2)ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象。

把对象的创建不是通过new方式实现,而是交给spring配置创建类对象

3 spring是一站式框架

(1)spring在javaee三层结构中,每一层都提供不同的解决技术。

web层:springMVC

service层:spring的ioc

dao层:spring的jdbcTemplate

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实现原理



ioc原理


IOC入门案例

第一步 导入jar包

(1)解压资料zip文件

Jar特点:都有三个jar包,基本架包、文档、源架包

(2)做spring最基本功能时候,导入四个核心jar包就可以了。

(3)导入支持日志输出的jar包

第二步 创建类,在类里面创建方法

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-framework-4.2.4.RELEASE\docs\spring-framework-reference\htmlxsd-configuration.html
<?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">
        
        </beans>
(3)配置对象创建

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

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

	@Test
	public void testUser() {
		//1加载spring配置文件,根据创建对象
		ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
		//2得到配置创建的对象
	     User user=(User) context.getBean("user");
	     System.out.println(user);
	     user.add();
	}

配置文件没有提示问题

1 spring引入schema约束,把约束文件引入到eclipse中,

(1)复制约束路径

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

Spring的bean管理(xml方式)

Bean实例化的方式

1 在spring里面通过配置文件创建对象

2 bean实例化三种方式实现

第一种 使用类的无参数构造创建(常用)

  <!-- ioc入门 -->
        <bean id="user" class="cn.itcast.ioc.User"></bean>
类里面没有无参数的构造,出现异常。

第二种 使用静态工厂创建

(1)创建静态的方法,返回类对象。

  <!-- 使用静态工厂创建对象 -->
        <bean id="bean2" class="cn.itcast.bean.Bean2Factory" factory-method="getBean2"></bean>
@Test
	public void testUser() {
		//1加载spring配置文件,根据创建对象
		ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
		//2得到配置创建的对象

		Bean2 bean2=(Bean2) context.getBean("bean2");
		System.out.println(bean2);
	}
package cn.itcast.bean;

public class Bean2Factory {

	//静态的方法,返回Bean2对象
	public static Bean2 getBean2() {
		return new Bean2();
	}
	
}


第三种 使用实例工厂创建

(1)创建不是静态的方法,返回类对象。

  <!-- 使用实例工厂创建对象 -->
        <!-- 创建工厂对象 -->
        <bean id="bean3Factory" class="cn.itcast.bean.Bean3Factory"></bean>  
        <bean id="bean3" class="bean3Factory" factory-method="getBean3"></bean>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值