0%

spring基础

基础

spring5.2.0官方文档地址

(重新过一遍Spring,打好基础,之后具体的过一遍springboot)

相当于new一个对象

2 设置属性值1为2

中可以使用来添加对象

** **

这里的name和ref虽然是同名的但是name是指Person类中的参数,Person类中有一个Axe类型名叫axe的对象,而ref是当前xml文件中叫做axe的这个bean,把它当作参数传进Person中

bean的作用域

1、单例模式(Singleton)

2、原型模式()

Bean的自动装配

1、XML装配

可以直接配置applicationxml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>

<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>

<!-- more bean definitions go here -->

</beans>

也可以配置多个xml,然后通过import引入(适用于多人开发),其中相同的bean spring只会保留一个

1
2
3
4
5
6
7
8
<beans>
<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>

<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>
</beans>

装配方式,相当于new一个名为beanOne的ThingOne对象。

1
2
3
4
5
6
7
8
9
10
<beans>
<bean id="beanOne" class="x.y.ThingOne">
<constructor-arg ref="beanTwo"/>
<constructor-arg ref="beanThree"/>
</bean>

<bean id="beanTwo" class="x.y.ThingTwo"/>

<bean id="beanThree" class="x.y.ThingThree"/>
</beans>
注解装配

使用注解的前提:

  1. 导入context约束,需要添加: xmlns:context="http://www.springframework.org/schema/context"

    http://www.springframework.org/schema/context

    https://www.springframework.org/schema/context/spring-context.xsd"

  2. 配置注解支持:<context:annotation-config/>

1
2
3
4
5
6
7
8
9
10
11
12
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">

<context:annotation-config/>

</beans>
注解

@Autowired – 配置在属性上就可以了。

@Qualifier – 通过具体的name去实现自动装配

1
@Qualifier(value="name")

@Value – 通过value去注入具体的值,用在set方法上

@Service @Repository @ControllerMVC三层架构分层,用在类上,表示将该类托管给spring管理

@Scope – 配置类的模式(Singleton、prototype)

AOP

动态代理

基于接口的动态代理和基于类的动态代理