基础
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="..."> </bean>
<bean id="..." class="..."> </bean>
</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>
|
注解装配
使用注解的前提:
导入context约束,需要添加: xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd"
配置注解支持:<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
@Controller
MVC三层架构分层,用在类上,表示将该类托管给spring管理
@Scope
– 配置类的模式(Singleton、prototype)
AOP
动态代理
基于接口的动态代理和基于类的动态代理