【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配置的节约内存。

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

Spring 框架原理的更多相关文章

  1. Struts hibernate Spring 框架原理

    转自:http://www.cnblogs.com/javaNewegg/archive/2011/08/28/2156521.html 原理:1.通过Configuration().configur ...

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

      在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 .   一些独角 ...

  3. JavaWeb日常笔记

    1.   XML文档的作用和解析 1. XML的基本概述: XML的主要是用来存储一对多的数据,另外还可以用来当做配置文件存储数据.XML的表头如下: <?xml version='1.0' e ...

  4. 2019年后,Java岗面试快速突击指南

    大家好.这篇文章给大家分享一下如何获得一个可以去参加面试的最小可行知识(Minimal Viable Knowledge)!我自己在就基本上靠文章中的策略在找实习的时候拿到了头条阿里的offer.所以 ...

  5. spring security 权限框架原理

    spring security 权限框架原理

  6. Spring缓存框架原理浅谈

    运维在上线,无聊写博客.最近看了下Spring的缓存框架,这里写一下 1.Spring 缓存框架 原理浅谈 2.Spring 缓存框架 注解使用说明 3.Spring 缓存配置 + Ehcache(默 ...

  7. Spring security框架原理

    转自: http://www.blogjava.net/youxia/archive/2008/12/07/244883.html  在SpringSide 3的官方文档中,说安全框架使用的是Spri ...

  8. Spring Boot整合Dubbo框架demo

    Dubbo框架原理见之前的博文:http://www.cnblogs.com/umgsai/p/5836925.html 首先启动zookeeper Server端 Pom配置如下 <?xml ...

  9. 采用dom4j和反射模拟Spring框架的依赖注入功能

    Spring的依赖注入是指将对象的创建权交给Spring框架,将对象所依赖的属性注入进来的行为.在学习了dom4j后,其实也可以利用dom4j和反射做一个小Demo模拟Spring框架的这种功能.下面 ...

随机推荐

  1. Python自然语言处理学习笔记之信息提取步骤&分块(chunking)

    一.信息提取模型 信息提取的步骤共分为五步,原始数据为未经处理的字符串, 第一步:分句,用nltk.sent_tokenize(text)实现,得到一个list of strings 第二步:分词,[ ...

  2. Sublime Text 中文乱码解决方案

    1.到这里下载安装PackageControl https://packagecontrol.io/installation#Manual 完成重启Sublime Text: 2.按Ctrl+Shif ...

  3. Java 去除 ArrayList 集合中的重复元素

    // One practice package Collection; import java.util.ArrayList; import java.util.Iterator; // 去除 Arr ...

  4. jquery实现全选、全不选、反选、获取选中的所有值总结

    HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. <!doctype html> <html> <head& ...

  5. 我的Java开发之路

    拉拉溜溜学习了半年了.才发现自己现在才进入面向对象.

  6. FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择

    第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的, ...

  7. 【排序算法】归并排序算法 Java实现

    归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 基本思想 可以将一组数组分成A,B两组 依次类推,当分出来的小组只有一 ...

  8. JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法

    思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...

  9. 基于MAC10.12+MYSQL5.7.17搭建XMPP服务器【黑苹果系统】

    在以前的公司中了解到XMPP可以搭建即时通讯APP.出于好奇自己在空余时间也学了一下搭建XMPP服务器,其中遇到了许多问题,经过坎坷的路程终于搭建成功[这些坎坷的经历主要是由于自己的无知造成的] 下面 ...

  10. 辗转相除法求H.C.F小结

    辗转相除法 大纲: 问题 原理 反思 1.     问题 一个试题,请完成以下填空 下列程序是利用辗转相除法求H.C.F(最大公约数) include <stdio.h> int main ...