这篇文章给大家介绍Spring 装配是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
single 单例模式(默认)
<!-- scope="singleton"--><bean id="user" class="com.gwssi.pojo.User" scope="singleton"> <property name="name" value="laughing" /> <property name="age" value="1"/></bean>
IOC容器仅创建一个Bean实例,IOC容器每次返回的是同一个Bean实例。
<bean id="user" class="com.gwssi.pojo.User" scope="prototype"> <property name="name" value="laughing" /> <property name="age" value="1"/></bean>
IOC容器可以创建多个Bean实例,每次返回的都是一个新的实例。
该属性仅对HTTP请求产生作用,使用该属性定义Bean时,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境。
该属性仅用于HTTP Session,同一个Session共享一个Bean实例。不同Session使用不同的实例。
该属性仅用于HTTP Session,同session作用域不同的是,所有的Session共享一个Bean实例。
byName自动注入:
byType自动注入:
按照类型装配。
spring2.5之后支持注解装配,,需要导入约束
<?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>
它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。(也可用在set方法上)
需要符合byname规范,且在beans中注册。
Autowired有一个属性required,默认为true。
public @interface Autowired { boolean required() default true;}
设置为false,表示可以为空
我们可以经常见到这种写法,表示自动装配到这个类:
@Autowired private MovieCatalog movieCatalog;
@Resource的作用和@Autowired相同,@Autowired按byType自动注入,@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resources按名字,是JDK的,@Autowired按类型,是Spring的。
关于Spring 装配是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。