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

唐山中小企业网站制作公司装修怎么样

唐山中小企业网站制作,公司装修怎么样,网站建设模板代理,电商网站设计是什么在spring 中使用注解#xff0c;常使用Autowired#xff0c; 默认是根据类型Type来自动注入的。但有些特殊情况#xff0c;对同一个接口#xff0c;可能会有几种不同的实现类#xff0c;而默认只会采取其中一种的情况下 Primary 的作用就出来了。下面是个简单的使用例子。…在spring 中使用注解常使用Autowired 默认是根据类型Type来自动注入的。但有些特殊情况对同一个接口可能会有几种不同的实现类而默认只会采取其中一种的情况下 Primary 的作用就出来了。下面是个简单的使用例子。 有如下一个接口 public interface Singer {String sing(String lyrics); }有下面的两个实现类: Component // 加注解让spring识别 public class MetalSinger implements Singer{Overridepublic String sing(String lyrics) {return I am singing with DIO voice: lyrics;} }//注意这里没有注解 public class OperaSinger implements Singer {Overridepublic String sing(String lyrics) {return I am singing in Bocelli voice: lyrics;} }下面就是注入上面的 Componentpublic class SingerService {private static final Logger logger LoggerFactory.getLogger(SingerService.class);Autowiredprivate Singer singer;public String sing(){return singer.sing(song lyrics);}}I am singing with DIO voice: song lyrics. 原因很简单就是 OperaSinger 这个类上面根本没有加上注解Copmonent 或者 Service, 所以spring 注入的时候只能找到 MetalSinger 这个实现类. 所以才有这个结果。 但是如果一旦 OperaSinger 这个类加上了Copmonent 或者 Service 注解有趣的事情就会发生你会发现一个错误的结果或异常: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [main.service.Singer] is defined: expected single matching bean but found 2: metalSinger,operaSinger 提示很明确了spring 根据类型无法选择到底注入哪一个。这个时候Primay 可以闪亮登场了。 Primary Component public class OperaSinger implements Singer{Overridepublic String sing(String lyrics) {return I am singing in Bocelli voice: lyrics;} }如果代码改成这样再次运行结果如下 “I am singing in Bocelli voice: song lyrics” 用Primary 告诉spring 在犹豫的时候优先选择哪一个具体的实现。 用Qualifier这个注解来解决问题 将上面的两个类改为如下: Component(metalSinger) // 加注解让spring识别 public class MetalSinger implements Singer{Overridepublic String sing(String lyrics) {return I am singing with DIO voice: lyrics;} }Component(opreaSinger) public class OperaSinger implements Singer {Overridepublic String sing(String lyrics) {return I am singing in Bocelli voice: lyrics;} }Component public class SingerService {private static final Logger logger LoggerFactory.getLogger(SingerService.class);AutowiredQualifier(opreaSinger)private Singer singer;public String sing(){return singer.sing(song lyrics);} }扩展Spring注解常用汇总 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包) context:component-scan base-package“cn.test”/ Configuration把一个类作为一个IoC容器它的某个方法头上如果注册了Bean就会作为这个Spring容器中的Bean。 Lazy(true) 表示延迟初始化 Service用于标注业务层组件、 Controller用于标注控制层组件如struts中的action Repository用于标注数据访问组件即DAO组件。 Component泛指组件当组件不好归类的时候我们可以使用这个注解进行标注。 Scope用于指定scope作用域的用在类上 PostConstruct用于指定初始化方法用在方法上 PreDestory用于指定销毁方法用在方法上 Resource 默认按名称装配当找不到与名称匹配的bean才会按类型装配。 DependsOn定义Bean初始化及销毁时的顺序 Primary自动装配时当出现多个Bean候选者时被注解为Primary的Bean将作为首选者否则将抛出异常。只对接口的多个实现生效 Autowired 默认按类型装配如果我们想使用按名称装配可以结合Qualifier注解一起使用 Autowired Qualifier(“personDaoBean”) 存在多个实例配合使用
http://www.zqtcl.cn/news/57807/

相关文章:

  • 农村网站建设调查报告江苏商城网站制作公司
  • wordpress清楚缓存白城seo
  • 动易网站模板wordpress 联系我们 制作
  • windows优化大师官方网站制作和设计网页图
  • 网站页面分析范文深圳蕾奥规划设计公司网站
  • 网站建设-纵横网络网站建设方案设计
  • 扁平网站 文案网页游戏平台代理
  • 网站请及时续费成都住房和城乡建设局 网站首页
  • 什么是网站风格策划的重点网站模板手机
  • 有人有片视频吗免费的下载成都公司网站seo
  • 怎么创建卡密网站17.zwd一起做网站池尾站
  • 国外做油画的网站十大网站开发公司
  • 临安规划建设局网站个人app怎么做
  • 佛山新网站建设如何安徽省港航建设投资集团网站
  • 模拟建设网站网站制作培训多少钱
  • 做网站要不要签合同天使投资
  • 佛山网站建设哪个好申请免费域名的方法
  • 网站建设虚拟主机说明微信网页宣传网站怎么做的
  • 如何建立网站会员系统wordpress主题 kratos
  • 做中英文网站要注意什么免费关键词搜索工具
  • 比较出名的设计网站网站视频链接怎么做
  • 百度站长平台注册wordpress文章生成二维码
  • win7电脑做网站公司名称免费起名
  • 徐州网站二次开发app推广渠道商
  • 邯郸网站制作厂家网站推广合同模板
  • 台州云推广网站系统优化的目的和意义
  • 怎么查看网站空间是否到期为网站开发android客户端
  • 设置自己的网站网页设计网站教程
  • 竞价开户公司知乎关键词优化软件
  • 四川省住房和城乡建设厅官方网站营销型网站制作价格