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

  (3) struts2

二、spring 的 ioc 操作

1. 把对象的创建交给spring 进行管理

2.ioc 操作两部分

 (1) ioc 的配置文件方式

 (2)ioc 的注解方式

 

三、IOC 底层原理

     1. ioc 底层原理使用技术

        (1)xml配置文件

        (2)dom4j 解决 xml

        (3)工厂设计模式

        (4)反射

     2. 画图分析ioc 实现原理

       


四、IOC 入门案例

     第一步:导入jar包

    

    第二步:创建一个类      


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

<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-2.5.xsd">

     (3) 配置对象创建        

<!-- ioc入门   id可以随便写,建议写类名小写  class 路径-->

   <bean id="user" class="com.hcq.ioc.User"> </bean>

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

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

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

   (2) 配置文件没有提示问题

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

        (1) 复制约束路径

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

       


五、 spring 的 bean 管理 (xml方式)

  1、Bean 实例化方式

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

     (2) bean实例化三种方式实现

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

    

 类里面没有无参数的构造,出现一下异常

第二种 使用静态工厂创建

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

第三种 使用实例工厂创建

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

六、Bean 标签常用属性

     1. id 属性: 起名称,id属性值名称 任意命名

      - id属性值, 不能包含特殊符号

      - 根据id值 得到配置对象

     2、 class属性: 创建对象所在类的全路径

     3、name 属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号

     4、scope 属性:

         -singleton:默认值,单例

    -prototype: 多例

   

  

   -request:创建对象把对象放到request域里面

   -session:创建对象把对象放到session域里面

   -globalSession:创建对象把对象放到globalSession域里面

七、属性注入介绍

     1.创建对象时候,向类里面属性里面设置值

     2.属性注入的方式介绍(三种方式)

     (1) 使用set 方法注入

     (2) 使用有参数构造注入

     (3)使用接口注入

  

    3. 在spring 框架里面,支持前两种方式

      (1) set 方法注入(重点)

      (2) 有参数构造注入

   使用有参数构造注入属性

  

   


使用 set 方法注入属性





八   注入对象类型属性(重点)

 1.创建service类 和 dao类

   (1)在service 得到 dao 对象

2. 具体实现过程

  (1) 在 service 里面把 dao 作为类型属性

  (2) 生成 dao 类型属性的set 方法 

   

 (3) 配置文件中注入关系  

  

 九、Person 名称空间注入 

 




十、 注入复杂类型属性

1.数组

2.list集合

3.map集合

4.properties 类型


十一、 IOC 和 DI 区别

(1) IOC : 控制反转,把对象创建交给spring 进行配置

(2) DI: 依赖注入,向类里面的属性中设置值

(3) 关系:;依赖注入不能单独存在,需要在ioc 基础上完成操作


  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值