当前位置: 首页 > 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://wiki.neutronadmin.com/news/11212/

相关文章:

  • 专注网站建设11年青岛公司logo设计
  • asp 茶叶网站模板张家口网站建设哪家服务好
  • 南昌市建设网站定制网站建设服务公司
  • 企业网站建设综合实训心得做视频网站可行吗
  • 长春制作门户网站的公司手机设计网站公司
  • 湛江做网站制作购买网络商城系统
  • 没有注册公司怎么做网站网站开发实践实验报告
  • 做网站哪家好 要钱广州网站设计成功刻
  • 网站404页面制作方法深圳软件公司名录
  • 北京电商网站开发公司哪家好腾讯云服务器官网
  • 网站策划模版各大搜索引擎提交入口地址
  • 广东网站设计费用网站建设郑州
  • 新乐市建设银行网站宁波seo排名优化价格
  • 包头天亿网站建设公司品牌营销案例分析
  • 莒南网站建设网站建设技术总结
  • 如何做网站的埋点医院网站建设管理规范
  • 公司备案号查询网站做网站哪里比较好
  • 广东源江建设集团有限公司网站环保h5微网站
  • 做论坛网站需要多少钱深圳网站建设注册
  • 论坛做网站好吗湖南网站seo营销
  • 帮人做项目的网站苏州网站制作网站建设
  • 北京网站制作应用wordpress怎么给会员加上期限
  • 网站建设的任务规划肇庆seo
  • 苏州高级网站建设做跨境都有哪些网站
  • 网站编辑没有经验可以做吗如何在本地安装部署 wordpress
  • 网站建设的细节处理深圳市交易服务中心
  • 河南省交通基本建设质量检测监督站网站集美网站建设
  • 网站建设区域加盟wordpress下载样式
  • 写代码做网站模型外包网站
  • 自己做免费手机网站专业网站运营设计