Spring学习笔记——20181130

本文详细介绍Spring框架的搭建过程,包括下载核心JAR包、配置文件编写及使用Spring工具套件提高开发效率。深入解析IOC(控制反转)概念,探讨其发展历史,并通过实例演示如何利用Spring IOC容器进行对象管理和依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静下心来、学习!

IOC:控制反转(DI:依赖注入)

1、搭建Spring环境

下载jar

https://maven.springframework.org/release/org/springframework/spring/

spring-framework-4.3.9.RELEASE-dist.zip

开发spring至少需要使用的jar(5+1)

spring-aop.jar               开发aop特性时需要的jar

spring-beans.jar            处理Bean             <bean>

spring-context.jar          处理spring上下文   <context>

spring-core.jar              spring核心jar

spring-expresseion.jar  spring表达式   EL/jstl

三方提供的日志jar

commons-logging.jar    日志

2、编写配置文件

为了编写时有一些提示、自动生成一些配置信息:

方式一:

可以给eclipse增加支持spring的插件:spring tool suite(https://spring.io/tools3/sts/all) 下载springsource-tool-suite-3.9.6.RELEASE-e4.8.0-updatesite.zip(匹配eclipse版本),然后在eclipse中安装。

方式二:

      直接下载sts工具(相当于一个集成了spring tool suite 的eclipse)  http://spring.io/tools3/sts/

新建:bean configuration       - complicationContext.xml

3、开发spring程序(IOC)

       //spring上下文对象
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        //直接从sprigioc容器获取一个id为‘指定对象’的对象
        Student student=(Student)context.getBean("student");

Spring IOC容器:创建new对象、给对象的属性赋值

 

SpringIOC发展史: 

1.new

new非常零散,造成后期维护较为麻烦。

2.简单工厂

3.ioc

SpringIOC容器(超级工厂) ————可以存放任何对象

IOC:控制反转

          反转的是:获取对象的方式

 

为了更加清晰理解IOC,ioc在一次大会上更名为DI(依赖注入)

IOC(控制反转)也称为DI(依赖注入):

控制反转:将  创建对象、属性值  的方式进行了翻转,从new、setXxx()翻转为了从springIOC容器getBean().

依赖注入:将属性值 注入给了属性,将属性 注入给了bean,将bean 注入给了ioc容器;

【社会主义】

总结:Ioc/DI,无论要什么对象,都可以直接去SpringIOC容器中获取,而不需要自己操作。

因此之后的ioc分为2步:  1、先给Springioc中存放对象并赋值 

                                          2、拿

DI:依赖注入

IOC容器赋值:如果是简单类型(8个基本+String),value;

                        如果是对象类型,ref="需要引用的id值",因此实现了  对象与对象之间的依赖关系

context.getBean(需要获取的bean的id值)

依赖注入3种方式:

1、set方式的依赖注入:

赋值,默认使用的是 set方法();

依赖注入底层是头盖骨反射实现的。

2、构造器注入:通过构造方式赋值

    <constructor-arg value="ls" type="String" index="1" name="name></constructor-arg>

需要注意:如果<constructor-arg>的顺序与构造方法参数的顺序不一致,则需要通过type或者index或者name指定。

3、p命名空间注入

    引入p命名空间

       xmlns:p="http://www.springframework.org/schema/p"

       <bean id="teacher" class="org.wyl.entity.Teacher" p:age="24" p:name="ww">

    简单类型:                        p:属性名=“属性值”

    引用类型(除了String外):  p:属性名-ref="引用的id"

    注意:多个 p赋值的时候要有空格。

 

注意: 无论是String还是int、short、long,在赋值时都说 value=“值”,因此建议 此种情况 需要配合 name\type进行区分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baymax_wyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值