当前位置: 首页 > news >正文

查询网站域名备案学做宝宝衣服的网站

查询网站域名备案,学做宝宝衣服的网站,做电商网站都需要学什么条件,医院网站建设的好处目录 1. 不创建参数类型的Bean 2. 创建一个与参数同类型同名的Bean 3. 创建多个与参数同类型,其中一个与参数同名的Bean 4. 创建一个与参数同类型不同名的Bean 5. 创建多个与参数同类型但不同名的Bean 对于Bean修饰的方法,也可能需要从外部传参&…

目录

1. 不创建参数类型的Bean

2. 创建一个与参数同类型同名的Bean

3. 创建多个与参数同类型,其中一个与参数同名的Bean

4. 创建一个与参数同类型不同名的Bean

5. 创建多个与参数同类型但不同名的Bean


对于@Bean修饰的方法,也可能需要从外部传参,现说明@Bean的参数传递问题。

仍以BeanConfig类的userInfo方法为例,假设当前方法需传递一个名为name的String类型的参数。

1. 不创建参数类型的Bean

BeanConfig类内容如下:

package com.example.iocdemo1.Config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BeanConfig {@Beanpublic UserInfo userInfo(String name){UserInfo userInfo1=new UserInfo();userInfo1.setId(1);userInfo1.setName(name);userInfo1.setAge(20);return userInfo1;}
}

运行程序,启动日志报错如下:

即将参数name也视为一个bean,该bean的类型为String,当前并未定义该bean,故报错。

2. 创建一个与参数同类型同名的Bean

修改BeanConfig类,为其增加一个名为name的String类型的Bean如下:

package com.example.iocdemo1.Config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BeanConfig {@Beanpublic String name(){return "wangwu";}@Beanpublic UserInfo userInfo(String name){UserInfo userInfo1=new UserInfo();userInfo1.setId(1);userInfo1.setName(name);userInfo1.setAge(20);return userInfo1;}
}

保持启动类内容不变,重新启动程序:

可见此时userInfo方法接收参数成功;

3. 创建多个与参数同类型,其中一个与参数同名的Bean

当前userInfo方法需要一个名为name类型为String的参数,现创建两个String类型的Bean,一个Bean(name)与形参名保持一致,另外一个Bean(name2)与形参名不同:

package com.example.iocdemo1.Config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BeanConfig {@Beanpublic String name(){return "wangwu";}@Beanpublic String name2(){return "zhaoliu";}@Beanpublic UserInfo userInfo(String name){UserInfo userInfo1=new UserInfo();userInfo1.setId(1);userInfo1.setName(name);userInfo1.setAge(20);return userInfo1;}
}

重新启动程序,日志如下:

可见当前userInfo方法接收了与参数名相同(name)的那个Bean;

4. 创建一个与参数同类型不同名的Bean

当前userInfo方法需要的参数类型为String,现创建一个String类型的Bean,该Bean的名称(name2)与形参名称(name)不同:

package com.example.iocdemo1.Config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BeanConfig {@Beanpublic String name2(){return "zhaoliu";}@Beanpublic UserInfo userInfo(String name){UserInfo userInfo1=new UserInfo();userInfo1.setId(1);userInfo1.setName(name);userInfo1.setAge(20);return userInfo1;}
}

运行程序,日志如下:

可见当前userInfo方法接收了与参数虽然名称不同(name)但类型相同(String)的那个Bean;

5. 创建多个与参数同类型但不同名的Bean

当前userInfo方法需要的参数类型为String,现创建两个String类型的Bean,两个Bean的名称(name2和name3)都与形参名称(name)不同:

package com.example.iocdemo1.Config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BeanConfig {@Beanpublic String name2(){return "zhaoliu";}@Beanpublic String name3(){return "tianqi";}@Beanpublic UserInfo userInfo(String name){UserInfo userInfo1=new UserInfo();userInfo1.setId(1);userInfo1.setName(name);userInfo1.setAge(20);return userInfo1;}
}

报错如下:

总结@Bean接收参数的原则:

1、首先根据类型获取Bean,若没有与参数类型匹配的Bean则报错

2、若满足类型要求的Bean有多个,则优先获取与参数同名的Bean。 

3、若存在一个名称虽不匹配但类型匹配的Bean,则该Bean也可被@Bean接收

4、若存在多个名称虽不匹配但类型匹配的Bean,则无法匹配Bean,报错;

http://www.yayakq.cn/news/478003/

相关文章:

  • 开发网站公司的简介今天的新闻是什么
  • wordpress 回复龙岗seo培训
  • 金融网站开发公司进入淘宝官网首页
  • 天站网站建设网站建设需要什么编程语言
  • 公司一个人做网站网站广东省备案
  • 广州花都网站开发广州seo顾问seocnm
  • 服装定制创业计划书济南建设网站制作优化分析
  • 安徽网站建设服务平台国家信用信息公示系统河北
  • 泉州网站建设推广网站导航布局
  • 沈阳德泰诺网站建设公司怎么样公司让我做网站负责人
  • 上海企业服务平台seo优化工具
  • 做服装行业网站怎么每天更新内容帮传销组织做网站
  • 免费网站模板代码wordpress中文版 显示英文版
  • 做赌场网站犯法么刚做网站做什么网站好点
  • 网站后缀意思电商平面设计主要做什么
  • 桂林网站开发公司长沙编程培训学校哪家好
  • 湛江专业建站网站开发 打标签
  • 前端做项目的网站资源网站建设的工作流程
  • 企业花钱做的网站出现违禁词建设网站思维导图
  • 潮汕17网站一起做网店官网天津黄页企业名录
  • 高端的网站建设怎么做网站开发主管工作内容
  • 找代理做网站多少钱网站内容好
  • 任何网站都可以做谷歌推广的吗wordpress 整站采集
  • 如何建网站的步骤标书制作费用
  • 获取网站缩略图焦作网站建设哪家好
  • 做外贸网站卖什么东西好医学教育网站建设方案
  • 前端 国外 网站珠海模板建站平台
  • 手机如何网站网店seo
  • 做网站找那个公司青岛网站维护公司
  • 网站开发需要会什么软件赣州网站建设精英