Spring 框架原理

【spring框架原理】



Spring框架原理

【博主】高瑞林

【博客地址】http://www.cnblogs.com/grl214

写给读者的话

------亲爱的读者感谢您对小编的支持,当我正值青的年纪里,很高兴能结识了一群花样年华的你们。当幸福像花儿一样盛开,请允许我记住在花季里始终如一关注我的你  谢谢您一直在路上!让我们一起带着欢乐走进Java的世界!

目录
  • 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
 3     private String name;
 4
 5     private int age;
 6
 7     private Book book;
 8
 9     public String getName() {
10         return name;
11     }
12
13     public void setName(String name) {
14         this.name = name;
15     }
16
17     public int getAge() {
18         return age;
19     }
20
21     public void setAge(int age) {
22         this.age = age;
23     }
24
25     public Book getBook() {
26         return book;
27     }
28
29     public void setBook(Book book) {
30         this.book = book;
31     }

建一个Book类

 1 public class Book {
 2
 3     private String name;
 4
 5     private int price;
 6
 7     private String place;
 8
 9     public String getName() {
10         return name;
11     }
12
13     public void setName(String name) {
14         this.name = name;
15     }
16
17     public int getPrice() {
18         return price;
19     }
20
21     public void setPrice(int price) {
22         this.price = price;
23     }
24
25     public String getPlace() {
26         return place;
27     }
28
29     public void setPlace(String place) {
30         this.place = place;
31     }
32   }

 applicationContext.xml配置文件

<?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">
<!-- bean的配置文件 -->
<bean id="person" class="org.jingdong.bean.life.Person">
<property name="name" value="grl"></property><property name="age" value="11"></property><property name="book" ref="book"></property></bean>
<bean id="book" class="org.jingdong.bean.life.Book">
<property name="name" value="think in java"></property><property name="place" value="USA"></property><property name="price" value="79"></property>
</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配置的节约内存。

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

时间: 2024-11-07 13:52:36

Spring 框架原理的相关文章

程序员如何自我成长

大多数未毕业和工作不久的程序员同学都存在以下几点迷茫: 针对未毕业的计算机同学来说,存在迷茫点有: 1. 不知道社会上企业需要怎样的技能 2. 不知道如何选择第一份工作 3. 在大学接下来的日子如何提升自己,为找工作做准备 针对工作5年之内的程序员同学来说,普遍存在的迷茫点有: 1. 工作过程中如何提升自我技能 2. 跳槽面试超级不自信,觉得工作1-2年感觉什么都没学到 3. 自己渴望有所提升,希望有大牛带领自己提升,但是迟迟找不到,非常困惑如何提高 4. 对自己后面工作规划完全不清楚,担心下一

零基础学习java,最新版学习路线图了解一下

目前Java在许多行业的客户端方面的应用非常多,比如OA.邮箱.投票.金融.考试.物流.医疗.矿山等信息方面的系统.Java开发者在这方面的需求也非常大,待遇也相当不错,工资水平可能和Java互联网方向的差不多,但福利和前途则非常好,因为这类工作基本上是政府事业单位及大型企业提供的. 对于java学习,一套专业系统的java学习路线图是不可少的,让你从入门到精通实现系统化! 第一阶段:Java基础 第一部分Java开发介绍 DOS常用命令 JVM.JRE.JDK之间的关系 Java开发环境的搭建

java开发,年薪15W的你和年薪50W的他的差距

在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角兽公司以及腾讯.阿里.百度.网易等知名大厂对Java人才的需求量连年升级,有2年工作经验的优秀程序员能轻松达到30w+的水平,但与此同时对人才的要求也越来越高. 很多学生都会疑惑,同样是程序员吗,同样是学的Java,同样掌握了相应的技术,为什么自己就不能拿到BAT企业的Offer,不能拿到50W+的年薪?自

十年架构师留下最完整的Java学习路线,学完年薪40W

文章有点长,请大家耐心看完,话不多说直接上干货! 永不过时的编程语言--Java 编程开发. Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位. 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多.而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对

Spring缓存框架原理浅谈

运维在上线,无聊写博客.最近看了下Spring的缓存框架,这里写一下 1.Spring 缓存框架 原理浅谈 2.Spring 缓存框架 注解使用说明 3.Spring 缓存配置 + Ehcache(默认) 4.Spring 缓存配置 + Ehcache(自己实现) 5.Spring 缓存配置 + Memcache 6.Ehcache和Memcache的资料收集 Spring提供的缓存注解,通过对CacheManager管理Cache,实现对缓存的操作.Spring提供的CacheManager和

Spring security框架原理

转自: http://www.blogjava.net/youxia/archive/2008/12/07/244883.html  在SpringSide 3的官方文档中,说安全框架使用的是Spring Security 2.0.乍一看,吓了我一跳,以为Acegi这么快就被淘汰了呢.上搜索引擎一搜,发现原来Spring Security 2.0就是Acegi 2.0.悬着的心放下来了.虽然SpringSide 3中关于Acegi的配置文件看起来很不熟悉,但是读了Acegi 2.0的官方文档后,

Spring mvc 基本原理

Spring web mvc框架原理   题记——:   越努力越幸运,感谢缘分让我结识了一帮朋友,感谢你们的鼓励与支持,没有压力就没有突破,这是我第一次写博客,希望能以这种方式和大家分享技术,同时也鼓励自己不断进步!   1今天和大家分享的是Spring mvc框架的相关知识: 1.1什么是Springmvc Spring mvc 是Spring框架的一个模块,Springmvc和Spring不需要通过中间整合层进行整合,Springmvc 就是基于mvc这种开发模式的一种web框架. 1.2

&lt;分布式服务框架原理与实践&gt;读书笔记1

花了一段时间通读了<分布式服务框架原理与实践>.个人感触,所讲内容虽然不是实战级别,但可以从侧面领略"分布式服务"的魅力和要点. 1.<第一章 应用架构演进> 主要介绍了4个应用架构,这也基本上算是一个企业场景的严谨模式. 重要的是要理解SOA的设计原则.其中服务治理内容,可以作为研究DUBBO的理论储备. 2.第二章 分布式服务框架入门 实现思路上,课采用责任链,实现功能的动态扩展.该思想和Tomcat pipline,spring aop,intercept

spring mvc 基础学习

springmvc 框架原理 : 前端控制器.处理器映射器.处理器适配器.视图解析器 springmvc 入门: spring 和 ibatis 整合 springmvc 注解开发 常用注解学习 参数绑定(简单类型.pojo.集合类型) 自定义参数绑定* 数据回显 1.1 springmvc 框架 springmvc 是 spring 框架的一个模块,无需中间整合层进行整合,是基于mvc的web框架 1.2 什么是mvc mvc 是一个设计模式 1.3 springmvc框架