温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring的装配是怎样的

发布时间:2021-12-02 16:33:09 来源:亿速云 阅读:112 作者:柒染 栏目:大数据

这篇文章给大家介绍Spring 装配是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、Bean的作用域

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实例。

single 原型模式

<bean id="user" class="com.gwssi.pojo.User" scope="prototype">    <property name="name" value="laughing" />    <property name="age" value="1"/></bean>

IOC容器可以创建多个Bean实例,每次返回的都是一个新的实例。

request

该属性仅对HTTP请求产生作用,使用该属性定义Bean时,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境。

session

该属性仅用于HTTP Session,同一个Session共享一个Bean实例。不同Session使用不同的实例。

global-session

该属性仅用于HTTP Session,同session作用域不同的是,所有的Session共享一个Bean实例。

二、Bean自动装配

Spring的装配是怎样的

byName自动注入:

Spring的装配是怎样的

byType自动注入:

Spring的装配是怎样的

按照类型装配。

三、注解自动装配

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>

@Autowired

它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。(也可用在set方法上)

Spring的装配是怎样的

需要符合byname规范,且在beans中注册。

Autowired有一个属性required,默认为true。

public @interface Autowired {    boolean required() default true;}

Spring的装配是怎样的 设置为false,表示可以为空
我们可以经常见到这种写法,表示自动装配到这个类:

    @Autowired    private MovieCatalog movieCatalog;

@Resource

@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 装配是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI