请选择 进入手机版 | 继续访问电脑版

学JAVA网

 找回密码
 立即注册

Spring原理

[复制链接]
发表于 2018-6-4 15:13:03 |显示全部楼层
目录

  • Spring框架的概念
  • Spring中IOC
  • Spring框架原理
  • beanFactory和AppilcationContext的区别
一.Spring框架的概念

  Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。
二.Spring中的IOC

  IOC:(全称:Inverse Of Control )控制反转,容器主动将资源推送给它所管理的组件,组件所做的是选择一种合理的方式接受资源。
  简单的理解:把创建对象和维护之间的关系的权利由程序中转移到Spring容器的配置文件中。
  DI全称:Dependency Injection)依赖注入,IOC的另一种表现方式,组件以一种预先定义好的方式来接受容器注入的资源。
三.Spring框架原理

  1.例子:
  建一个person类
  1. public class Person {

  2.     private String name;

  3.     private int age;
  4.    
  5.     private Book book;

  6.     public String getName() {
  7.         return name;
  8.     }

  9.     public void setName(String name) {
  10.         this.name = name;
  11.     }

  12.     public int getAge() {
  13.         return age;
  14.     }

  15.     public void setAge(int age) {
  16.         this.age = age;
  17.     }

  18.     public Book getBook() {
  19.         return book;
  20.     }

  21.     public void setBook(Book book) {
  22.         this.book = book;
  23.     }
复制代码

[url=][/url]

建一个Book类
  1. public class Book {
  2.    
  3.     private String name;
  4.    
  5.     private int price;
  6.    
  7.     private String place;

  8.     public String getName() {
  9.         return name;
  10.     }

  11.     public void setName(String name) {
  12.         this.name = name;
  13.     }

  14.     public int getPrice() {
  15.         return price;
  16.     }

  17.     public void setPrice(int price) {
  18.         this.price = price;
  19.     }

  20.     public String getPlace() {
  21.         return place;
  22.     }

  23.     public void setPlace(String place) {
  24.         this.place = place;
  25.     }
  26.   }
复制代码
 applicationContext.xml配置文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- bean的配置文件 -->
  6. <bean id="person" class="org.jingdong.bean.life.Person">
  7. <property name="name" value="grl"></property>
  8. <property name="age" value="11"></property>
  9. <property name="book" ref="book"></property>
  10. </bean>
  11. <bean id="book" class="org.jingdong.bean.life.Book">
  12. <property name="name" value="think in java"></property>
  13. <property name="place" value="USA"></property>
  14. <property name="price" value="79"></property>
  15. </beans>
复制代码
  Main.java
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         // 创建IOC容器
  4.         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  5.         //从容器中获取bean实例
  6.         Person person = (Person) ac.getBean("person");
  7.         //使用bean
  8.         System.out.println(person.getName());
  9.     }
  10. }
复制代码
  2.运行原理分析:
(1).当ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext .xml");被执行时,Spring容器对象被创建,同时applicationContext .xml中的bean就会被创建到内存中:
(2)运行原理图:
四.beanFactory和ApplicationContext的区别

  配置bean的方式:
(1).通过ApplicationContext上下文容器:当在加载xml配置文件时,配置文件中的配置的bean已经被实例化
(2).BeanFactory:在加载配置文件时,配置文件中的bean不被实例化,只有当通过getBean(),获取bean实例的时候才被创建。
总结:通过BeanFactory配置的bean比通过ApplicationContext配置的节约内存。

--------------------------------------谢谢观看------------------------------------------------

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|学JAVA网

GMT+8, 2018-8-17 00:30 , Processed in 0.260861 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部