Spring学习第一天------2021-07-13

本文介绍了如何搭建第一个Spring工程,从创建Maven工程、配置核心XML文件到读取配置文件,详细讲解了Spring的IoC(控制反转)概念,包括XML和注解两种实现方式,并探讨了对象的创建时机及不同注入方式。同时,文中还涉及了bean的生命周期管理和自动注入的几种模式。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、搭建第一个Spring工程

1.创建Maven工程,导入坐标

	<dependencies>
		<dependency><!--SpringIOC-->
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
	</dependencies>

2. 创建核心配置文件,在resourceces下创建【applicationContext.xml或者beans.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"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

3.读取配置文件

个人理解
在这里插入图片描述

注意:测试类的BeanFactory是这个包底下的!导对√
在这里插入图片描述

4.注意事项

			1) bean中的class写的全限定类名创建的应该是能创建对象的类
			2) 如果想要让bean创建对象成功,spring默认调用被创建对象的空参构造方法,会报nosuchMethod
			3) property代表依赖注入,需要注意的属性,在对象中应该提供相对应的set方法
			4) ref是引用哪个beans的id,name是在某个类的private起的名字,这个private必须有set方法

二、核心思想IOC【控制反转Inversion of control】【还没学完,待补充】

1.控制反转后需要依赖注入

DI(依赖注入)是手法

2.XML版本

3.注解版本

三、IOC创建对象时机

1.ApplicationContext applicationcontext=new ClassPathApplicationContext (“beans.xml”);

加载配置文件结束,默认初始化对象,但是如果想要在加载完配置文件的时候不创建对象,需要在某个bean标签种追加懒加载配置。

在这里插入图片描述

2.默认创建同一个对象

在这里插入图片描述
打印出的地址。
在这里插入图片描述
如果不要每次都是创建同一个对象的话,那就需要在去追加其它设置
a. Id:对象名称
b. class:需要控制反转的类的全限定类名
c. lazy-init:是否需要做懒加载
d. scope:创建对象的范围:
(1) singleton–单例模式,默认模式
(2) rototype—多例模式
e. Init-method:初始化调用的哪个方法–在这个对象中的方法,先执行构造方法在执行init方法
f. destory-method:销毁方法

3.IOC的三种形式

1.默认无参构造
2.静态工厂
3.普通工厂

4.注入类型

1.手动注入

第一种:默认使用属性的set方法注入,前提必须有set方法。

在这里插入图片描述
在这里插入图片描述

第二种:利用构造方法注入【constructor-arg】

带有这个参数的构造方法
在这里插入图片描述
在这里插入图片描述

第三种:简单属性注入,也需要有set或者构造方法

在这里插入图片描述

给List、数组、Map注入【不用记,用的时候找】
Property 的name属性仍然是private修饰的私有属性的名称。
注入数组时
<property name="myStrs"> 
		<set> 
		<value>AAA</value> 
		<value>BBB</value> 
		<value>CCC</value> 
		</set> 
</property> 
注入list时
<property name="myList"> 
		<array> 
		<value>AAA</value> 
		<value>BBB</value> 
		<value>CCC</value> 
		</array> 
</property> 
注入set时
<property name="mySet"> 
		<list>
		<value>AAA</value> 
		<value>BBB</value> 
		<value>CCC</value> 
		</list> 
</property> 
注入map时
<property name="myMap"> 
		<props> 
		<prop key="testA">aaa</prop> 
		<prop key="testB">bbb</prop> 
		</props> 
</property> 
注入properties时
<property name="myProps"> 
		<map>
		<entry key="testA" value="aaa"></entry> 
		<entry key="testB"> 
		<value>bbb</value> 
		</entry> 
		</map> 
</property>

2.自动注入

自动注入在beans标签中有一个autowire
i. Constructor:使用构造方法注入
ii. byName:通过名称注入(一般情况下寻找属性名称,三十要知道其实寻找的时set方法)
一定要提供一个名称要符合set方法的id标签,跟控制反转的个数没关系
iii. byType:通过类型注入(和名称没有关系)
需要提供唯一的一个类型能匹配的id
【Note】:这些的意思是,举个例子
在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值