当前位置: 首页 > 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.w-s-a.com/news/652122/

相关文章:

  • 网站服务器建设的三种方法会展设计ppt
  • 如何把自己做的网站放到内网seo优化网络
  • 北京网站建设net2006厦门优化公司
  • 制作网页前为什么要建立站点菏泽百度网站建设
  • 做影视网站引流网页美工设计课程教案
  • 响应式网站开发流程图网站优化seo教程
  • 做汽车团购网站百度官网平台
  • 网站增加关键字建设旅游网站的功能定位
  • 怎么搭建源码网站义乌网络
  • 定远规划建设局网站wordpress云主机安装
  • 慈溪市网站开发软件开发文档国家标准
  • 本地佛山顺德网站设计公司的网站如何建设
  • 网站建设前十名网站建设 招标书
  • 手机网站标准百度搜索关键词排名优化推广
  • 中国空间站科幻作文1000字wordpress运行库
  • 徐州做网站的wordpress可视化编辑器排行
  • 官方网站英语上海公司注册核名查询
  • 东莞网站建设推广云南昆明最新消息
  • 上网站乱码网页设计与网站建设案例教程
  • 宣讲网站建设wordpress多媒体主题
  • 如何成立网站互联网开发是做什么的
  • 网站首页的尺寸做多大网页图片排版
  • 龙岩天宫山索道多少钱河南网站排名优化哪家好
  • 北京做网站设计程序员和网站开发
  • 个人 做自媒体 建网站图片制作成视频的手机软件
  • h5 建站网站 移动端重庆潼南网站建设价格
  • 商企在线营销型网站怎么做时光网站
  • 网站建设方案论文1500竞价托管哪家便宜
  • 使用cdn的网站宣武网站建设
  • 营销型网站怎么建设企业网站Wap在线生成