关于Spring的入门理解

Spring工作原理

接触过Spring的伙伴们知道它是个免费并且开源的框架,在现在的企业中也是经常用到的 正是因为它身上的优点之大 在企业以及项目中 基本是离不开的 下面我们就来讲讲关于Spring的那些事。

一.Spring的优点

1.被称为粘合剂的它,并非没有道理,Spring是可以方便集成任何优秀的框架,并且也不排斥各种常用框架(struts2,hibernate,mybatis,quartz,jpa)等。

2.控制反转将对象交给了Spring, 简化了开发,降低了代码之间的耦合性。

3 .Spring的强大功能之一 AOP,方便我们在项目中对事务的管理,我们只需要通过配置便可完成对事务的管理

4.方便对程序进行测试,spring对于Junit4的支持,可通过注解方便测试程序。

等等…

二.Spring理解

分IOC 和 AOP ,内部最核心的就是IOC了,动态注入,让开发人员们在创建对象不需要显式的 new 一个对象,可以自动的生产,这其实就是利用java中的反射机制,反射其实就是在运行时动态的去创建,以及调用对象,在运行Spring时,xml配置文件会动态的创建和调用里面的方法。

Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 配置类达到的。

Spring的目的:
就是让对象和对象直接没有存在直接或间接的关系,通过一个bean工厂,也就是咱们的配置文件内部,通过反射来实现直接调用方法。

Spring它是一个容器 只要是在容器中的对象都会有Spring提供的这些方便和功能。

Spring框架中,最经典的设计模式就是模板设计模式,这里大家可以自己去了解就好了。
点击了解模板设计模式
个人总到Spring的精华就以上两点了。

下面给大家来和例子 说说运行流程吧。

实体

public class Person {

    private String name;

    private int age;
    
    private Book book;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

public class Book {
    
    private String name;
    
    private int price;
    
    private String place;

    public String getName() {
        return name;
    }

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

    public int getPrice() {
        return price;
    }

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

    public String getPlace() {
        return place;
    }

    public void setPlace(String place) {
        this.place = place;
    }
  }

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>

测试类

public class Main {
    public static void main(String[] args) {
        // 创建IOC容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        //从容器中获取bean实例
        Person person = (Person) ac.getBean("person");
        //使用bean
        System.out.println(person.getName());
    }
}

上面代码就能基本的操作了我们的Spring IOC (DI 依赖注入)

原理分析:
当ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);
创建执行时,Spring对象被创建,同时在applicationContext.xml中的bean就会被创建到内存中。

配置bean的方式:
1.通过ApplicationContext上下文容器,当在加载XML配置文件时,bean就已经被实例化。

2.BeanFactory:在加载配置文件时,配置文件中的bean不被实例化,只有通过getBean(),获取实例的时候才会被创建。

个人总结:通过BeanFactory配置的bean比通过ApplicationContext配置更加节约内存。

以上就是个人对Spring的理解 有补充或探讨点 可以发到邮箱

2010944641@qq.com

============== 谢谢观看==============

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值