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

无锡公司做网站百度网盘客服电话24小时

无锡公司做网站,百度网盘客服电话24小时,wap网站开发实例,南山做网站公司哪家值得合作Bean是什么 Bean 是指 Java 中的可重用软件组件,容器会根据提供的元数据来创建和管理这些 Bean,也包括它们之间的依赖关系。Spring 容器对 Bean 并没有太多的要求,无须实现特定接口或依赖特定库,只要是最普通的 Java 对象即可,这类对象也被称为 POJO(Plain Old Java Obj…

Bean是什么

Bean 是指 Java 中的可重用软件组件,容器会根据提供的元数据来创建和管理这些 Bean,也包括它们之间的依赖关系。Spring 容器对 Bean 并没有太多的要求,无须实现特定接口或依赖特定库,只要是最普通的 Java 对象即可,这类对象也被称为 POJO(Plain Old Java Object)。

JavaBeans 是 Java 中一种特殊的类,可以将多个对象封装到一个对象(Bean)中。特点是可序列化,提供无参构造器,提供 Getter 方法和 Setter 方法访问对象的属性。 一个 Bean 的定义中,会包含如下部分,

  • Bean 的名称,一般是 Bean 的 id,也可以为 Bean 指定别名(alias);
  • Bean 的具体类信息,这是一个全限定类名;
  • Bean 的作用域,是单例(singleton)还是原型(prototype);
  • 依赖注入相关信息,构造方法参数、属性以及自动织入(autowire)方式;
  • 创建销毁相关信息,懒加载模式、初始化回调方法与销毁回调方法。 

Bean 的依赖关系

依赖注入,Spring 容器管理依赖就是管理 Bean 之间的依赖。

两种基本注入方式

 1. 基于构造方法的注入,是通过构造方法来注入依赖。对应的 XML 配置文件需要使用 <constructor-arg/> 传入构造方法所需的内容。<constructor-arg/> 的可配置属性如下,

属性

作用

value

要传给构造方法参数的值

ref

要传给构造方法参数的 Bean ID

type

构造方法参数对应的类型

index

构造方法参数对应的位置,从 0 开始计算

name

构造方法参数对应的名称

2. 基于 Setter 方法的注入,是通过 Bean 的 Setter 方法来注入依赖。

用代码实现两种注入方式,如下,

public class Hello {   private String name;
​   public Hello(String name) {       this.name = name;   }
​   public String hello() {       return "Hello World! by " + name;   }
}// 通过构造方法配置 Bean
// 使用 <constructor-arg/> 传入构造方法所需的内容
// <constructor-arg> 中有不少属性可以配置
<?xml version="1.0" encoding="UTF-8"?>
​
<beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans       https://www.springframework.org/schema/beans/spring-beans.xsd">
​   <bean id="hello" class="learning.spring.helloworld.Hello">       <constructor-arg value="Spring"/>   </bean>
​
</beans>// 通过 Setter 方法配置 Bean
// <property/> 中的 value 属性是直接注入的值,用 ref 属性则可注入其他 Bean
<bean id="..." class="...">   <property name="xxx">       <!-- 直接定义一个内部的Bean -->       <bean class="..."/>   </property>
​   <property name="yyy">       <!-- 定义依赖的Bean -->       <ref bean="..."/>   </property>
​   <property name="zzz">       <!-- 定义一个列表 -->       <list>           <value>aaa</value>           <value>bbb</value>       </list>   </property>
</bean>

自动织入(autowire)

手动配置依赖在 Bean 少时还能接受,当 Bean 的数量变多后,这种配置就会变得非常繁琐。让 Spring 容器替我们自动进行依赖注入,这种机制就叫自动织入。自动织入有几种模式,如下,

名称

说明

no

不进行自动织入

byName

根据属性名查找对应的 Bean 进行自动织入

byType

根据属性类型查找对应的 Bean 进行自动织入

constructor

同 byType,但用于构造方法注入

在 <bean/> 中可以通过 autowire 属性来设置使用何种自动织入方式,也可以在 <beans/> 中设置 default-autowire 属性指定默认的自动织入方式,Spring Framework 2.0也可以直接使用@Autowired注解。

自动织入时需要注意以下事项,

  • 开启自动织入后,仍可以手动设置依赖,手动设置的依赖优先级高于自动织入;
  • 自动织入无法注入基本类型和字符串;
  • 对于集合类型的属性,自动织入会把上下文里找到的 Bean 都放进去,但如果属性不是集合类型,有多个候选 Bean 就会有问题。

为了避免第三点问题,可以将 <bean/> 的 autowire-candidate 属性设置为 false,也可以在期望的候选 Bean 的 <bean/> 中将 primary 设置为 true,这表明在多个候选 Bean 中该 Bean 是主要的(如果使用基于 Java 类的配置方式,我们可以通过选择 @Primary 注解实现一样的功能)。

指定 Bean 的初始化顺序

Spring 容器会根据依赖情况自动调整 Bean 的初始化顺序。有时 Bean 之间的依赖并不明显,容器可能无法按预期初始化,这时可以自己指定 Bean 的依赖顺序。<bean/> 的 depends-on 属性可以指定当前 Bean 还要依赖哪些 Bean(基于 Java 类的配置方式支持 @DependsOn 注解实现一样的功能)。

Bean 的三种配置方式

Spring 容器的元数据配置本质上就是配置 Bean(AOP 和事务的配置背后也是配置各种 Bean),Bean的配置姿势就显得比较重要了。

Spring Framework 提供了不同风格的配置方式,这几种方式没有明确的优劣之分,很多时候也可以混合使用。

1. 早期仅支持 XML 配置方式;

2. Spring Framework 2.0 引入了基于注解的配置方式;

3. Spring Framework 3.0 又增加了基于 Java 类的配置方式。

基于 XML 文件的配置

Spring Framework 提供了 <beans/> Schema 配置 Bean,需要配合使用 ApplicationContext 类把 Bean 配置注入到容器中。

基于注解的配置

Spring Framework 2.0 引入了 @Required 注解,Spring Framework 2.5 又引入了 @Autowi

http://www.hkea.cn/news/628740/

相关文章:

  • 深圳手机网站建设多少钱外链代发软件
  • 璧山集团网站建设互联网推广营销
  • 平面设计网址推荐全国seo搜索排名优化公司
  • 青岛公路建设集团网站东莞排名优化团队
  • 北京公司响应式网站建设价位太原网站建设开发
  • 龙岩网络诈骗通缉人员优化推广方案
  • 专做海外代购的网站设计案例网
  • 漳州网站设计东莞网站制作模板
  • 制作应用的软件成都排名seo公司
  • 北京专业企业网站建设俄罗斯搜索引擎入口 yandex
  • wordpress 怎么改中文网站推广优化价格
  • 南山做网站公司怎么选择企业seo优化服务
  • 什么 电子商务网站建设与管百度招商加盟
  • 南召微网站开发手机优化大师官方版
  • 营销型网站技术特点网站推广网
  • 龙游县住房和城乡建设局网站百度seo优化方法
  • 深圳方维网站建设设计个人网站
  • wordpress 流量站百度应用
  • ps素材网seo在线工具
  • 岳阳网站开发公司html网站模板免费
  • 怎样用模板做网站优化网站技术
  • 全国新型疫情最新情况长沙网站搭建优化
  • 郑州网站建设规划seo建站教程
  • 购物网站 购物车界面如何做百度搜索网
  • 推广网站的图片怎么做外贸平台
  • 新手如何给自己的网站做优化bt种子磁力搜索
  • 成都学校网站制作遵义网站seo
  • d?t网站模版宁波seo在线优化哪家好
  • c做的网站淄博做网站的公司
  • 网站开发制作公司郑州网站建设外包