码迷,mamicode.com
首页 > 编程语言 > 详细

SSM应用(一)--Spring入门

时间:2018-04-19 17:04:20      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:.com   image   案例   contex   hashmap   能力   面向切面   加载   发展史   

Spring是什么

  Spring是一个框架;

  Spring是一个容器框架;

  Spring用于管理bean(Java类),并维护bean(Java类)之间的关系;

  容器框架:整个web都属于Spring来管理,Spring可以管理web层、业务层、dao持久层,每一层都是由Java类(bean)组成的,Spring能够管理所有的bean,并且维护bean之间的关系;

  技术分享图片

 

Spring的核心机制

  Bean:

    可以是Java中的任何对象,可以是JavaBean/service/servlet/dao,Spring就是通过管理每一层的bean,来实现管理整个项目。

    Spring可以管理bean的实例化,对象的诞生;

    Spring可以管理对象的关系(类中的对象属性);

  IOC/DI:

    IOC(inverse of control):控制反转

      不用Spring的时候,所有的对象都是new出来的,由我们自己决定什么时候new,控制权在我们自己手上;

      在Spring中,所有的对象都是由Spring来管理的,由Spring决定什么时候创建,控制权在Spring手上;

    DI(dependency injection):依赖注入

      如:web工程中service层与dao层的关系:

      在不用Spring的时候,service依赖于对象属性dao;

      在Spring中,由Spring将dao对象注入到service中,也体现了Spring管理service和dao的关系;

  AOP(aspect onented programming):面向切面编程,面向所有对象编程;

 

Spring入门案例

  现在有这样两个类:

  技术分享图片  技术分享图片

  实现Spring管理,维护bean的步骤:

    1、引入jar包;

  技术分享图片

 

    2、配置核心配置文件:applicationContext.xml

  技术分享图片

 

    3、编写测试类

  技术分享图片

    注意:

    核心配置文件中的id对应创建的对象的对象名;

    在核心类中使用getBean(id)方法得到Spring创建的bean对象;

    在配置对象属性时,需要使用ref属性,ref属性的值对应相应的bean对象配置文件的id;如:

    技术分享图片

 

  小结:如果我们把程序的发展史比喻成社会的话,就可以分为:

    原始社会:自给自足,需要对象,就自己new一个对象;

    工业社会:工厂,需要对象,由工厂创建出来,找工厂要;

    共产主义社会:Spring容器,容器中存放着配置好的大量的对象,需要的时候无需主动找,Spring会依赖注入;

 

Spring的执行机制

  读取application配置文件的时候,Spring框架被加载;

  当不考虑bean的生命周期时,读取application配置文件的时候,Spring中配置的bean被创建;

  技术分享图片

  读取配置文件的时候,bean被实例化并且以键值对的方式放置在Spring容器中

  Spring底层基于Java的反射机制

    读取配置文件:IO

    service = Class.forName(“bean,UserService”).newInstance();  //反射,建立实例

    byeservice = Class.forName(“bean,ByeService”).newIntance();  //反射,建立实例

    service.setSyaService(byeservice); //bean之间关系的建立  //属性的注入

    HashMap.put(“service”,service);HashMap.put(“byeservice”,byeservice);  //把对象放入HashMap中,作为Spring容器,工厂;

 

PS:因作者能力有限,如有误还请谅解;

SSM应用(一)--Spring入门

标签:.com   image   案例   contex   hashmap   能力   面向切面   加载   发展史   

原文地址:https://www.cnblogs.com/WHL5/p/8883942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!