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

网站首页幻灯片尺寸深圳市保障性住房申请官网

网站首页幻灯片尺寸,深圳市保障性住房申请官网,做网站在哪接广告,工程公司简介范文大全目录 一、Bean 的简单使用 1、正常情况 2、问题提出 二、解决方案 1、Qualifier 2、直接写方法名 三、特殊情况 1、DataSource 一、Bean 的简单使用 在开发中#xff0c;基于 XML 文件配置 Bean 对象的做法非常繁琐且不好维护#xff0c;因此绝大部分情况下都是使用…目录 一、Bean 的简单使用 1、正常情况 2、问题提出 二、解决方案 1、Qualifier 2、直接写方法名 三、特殊情况 1、DataSource 一、Bean 的简单使用 在开发中基于 XML 文件配置 Bean 对象的做法非常繁琐且不好维护因此绝大部分情况下都是使用“完全注解开发”。 对于 Spring 而言IOC 容器中的 Bean 对象的创建和使用是一大重点Spring 也为我们提供了注解方式创建 bean 对象使用 Bean。 在举例之前先熟悉以下两个需要用到的类 1User 类 package com.demo.pojo;import org.springframework.stereotype.Component;Component public class User {private String name;public void setName(String name) {this.name name;}Overridepublic String toString() {return User{ name name \ };} }2Book 类 package com.demo.pojo;import org.springframework.stereotype.Component;Component public class Book {private User user;public void setUser(User user) {this.user user;}public User getUser() {return user;} }1、正常情况 1下面是一个简单的 bean 对象创建 Bean public User getUser() {return new User(); } 经此操作IOC 中就会多出一个与 bean id getUser class 类路径.User/ 同义的 bean 对象。即方法名就是 id返回类型就是 class。 2含有普通类型参数的 bean 对象创建 Bean public User getUser(Value(wyt) String name) {User user new User();user.setName(name);return user; } 需要注意的是方法中的参数并不是 bean 对象的成员属性而是代表着 bean 对象的创建依赖于这几个参数或许用来 setParameter或许只是中间变量。 而在 xml 文件中的 property 则必须要求用 set 方法。 3含有对象类型参数的 bean 对象创建 package com.demo.config;import com.demo.pojo.Book; import com.demo.pojo.User; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.*;Configuration public class Config {Beanpublic User getUser(Value(wyt) String name) {User user new User();user.setName(name);return user;}Beanpublic Book createBook(User user) {Book book new Book();book.setUser(user);return book;} }对比在 xml 中是如何实现参数是对象类型时的属性注入 4正常情况下Bean 使用总结 4-1Bean 注解的方法其返回值就是一个 bean 对象并且注册到了 IOC 容器中。 id 为方法的名字class 为方法的返回类型 4-2Bean 对象的实例化依赖于方法内的参数参数可以是普通类型也可以是对象类型。 若为普通类型用 Value(xxx) 来注入这个参数若为对象类型则默认情况下Spring 会到 IOC 容器中寻找与参数类型相同的 bean 对象来注入这个参数 2、问题提出 根据上述内容我们会想到如果参数是对象类型可是 IOC 中拥有不止一个相同类型的 bean 对象这该怎么办呢 比如下面的情况 可以看到Book 对象的参数 user 已经报错了无法自动装配因为存在多个 User 类型的 BeanSpring 不知道应该将哪个 bean 注入到 user 中。 二、解决方案 首先我们要知道默认情况下参数的注入使用的是 Autowired不需要显式写出。 1、Qualifier 我们可以想到Autowired 是根据类型自动装配当一个类型有多个 bean 对象时失效。 而 Qualifier 是根据名称进行装配这不就意味着我们可以用 Qualifier 来明确需要的 bean 对象嘛。 这有两种写法都是有效的 直接在参数前加 Qualifier(function_name)在方法前加 Qualifier(function_别名)在参数前加 Qualifier(function_别名) 1配置类 package com.demo.config;import com.demo.pojo.Book; import com.demo.pojo.User; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.*;Configuration public class Config {Beanpublic User getUser(Value(wyt) String name) {User user new User();user.setName(name);return user;}Beanpublic User createUser(Value(wyt) String name) {User user new User();user.setName(name);return user;}Beanpublic Book createBook(Qualifier(createUser) User user) {Book book new Book();book.setUser(user);return book;} }2测试代码 Test public void SameObjectTest() {ApplicationContext context new AnnotationConfigApplicationContext(Config.class);Book book context.getBean(createBook, Book.class);System.out.println(book.getUser()); } 3输出结果 2、直接写方法名 因为一般情况下方法名不能相同因此也可以通过将参数名写成对应的方法名来进行注入。 package com.demo.config;import com.demo.pojo.Book; import com.demo.pojo.User; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.*;Configuration public class Config {Beanpublic User getUser(Value(wyt) String name) {User user new User();user.setName(name);return user;}Beanpublic User createUser(Value(wyt) String name) {User user new User();user.setName(name);return user;}Beanpublic Book createBook(User createUser) {Book book new Book();book.setUser(createUser);return book;} }三、特殊情况 在这里要说明一些特别的对象类型比如DataSource。 1、DataSource 1问题描述 Bean public DruidDataSource createDruidDataSource() {DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource; }Bean public DruidDataSource getDruidDataSource() {DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource; } 当我们像上面的代码一样写了两个数据源的 bean 对象之后运行就会出现如下报错  No qualifying bean of type javax.sql.DataSource available: expected single matching bean but found 2 简单来说就是因为 Spring 有其自身的配置类导致程序不知道选择哪一个数据源。 2解决方法 给其中任意一个加上 Primary代表当出现多个同类型 bean 时优先使用哪一个。写上之后就可以使用前文所述的方法如Qualifier 或直接写方法名。 Bean Primary public DruidDataSource createDruidDataSource() {DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource; }
http://www.huolong8.cn/news/11212/

相关文章:

  • 宁波建网站价格织梦网站主页
  • 成都企业建站系统网站布局设计分析特点
  • 专门做2手手机的网站wordpress 分享代码
  • 网站建设捌金手指花总五中装建设集团董事长
  • 做pc端网站案例一分钟赚50元的游戏
  • sns网站建设哪家公司好内存数据库 网站开发
  • 义乌搭建网站网站备案复查 手机号码打不通
  • 保定网站报价如何做产品展示网站
  • wordpress 字体样式表沧州seo包年平台排行榜
  • 陕西省建设厅网站月报商城网站技术方案
  • 网站页面用什么软件做wordpress安装好后
  • 网站素材大全深圳防疫最新政策
  • 专业模板建站价格wordpress语法高亮
  • 影响网站alexa排名的主要因素有通州网站建设服务
  • 阿里云网站域名备案吉林省四平市
  • 做增员的保险网站百度seo排名优化软件化
  • 做网站骗老外的钱教育网站开发文档
  • 网站后台有什么用建e室内设计网3d模型
  • 网站建设维护协议沧州网站域名注册服务公司
  • 适合seo的网站苏州百度搜索排名优化
  • 网站设计与推广网页设计是做什么
  • 安徽省建设工程协会网站网站建设yuue
  • 网站权重下降原因杭州网站建设交易
  • 中国城市建设网站如何更改wordpress上的默认头像
  • 西安网站建设第一品牌用html做网站步骤
  • 个人网站空间大小集团网站策划
  • 网站广告用ps如何做兰州网站建设人才招聘
  • 网站建设伍金手指下拉3企业营销网站的建设
  • php做网站的分站谷歌没收录网站主页 301重定向
  • wordpress建站容易吗做服务网站发展背景