Spring系列--bean容器的实例化之构造器创建bean实例(采用dtd约束)

Spring(十三):创建Bean——使用构造方法创建Bean 1、看视频进行系统学习这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。2、读源码,看实战笔记,学习大神思路“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。 阅读详情

bean的容器创建有三种方法:1.构造器创建,2.静态工厂方法创建,3.实例化工厂方法创建,本文主要要讲构造器创建法,因为该法是最为常用的.所以本文也推荐该方法创建bean实例

接下来我们创建bean实例化,(配置文件采用dtd约束)

1.创建两个接口分别定义两个行为,同时创建两个实现类(实现类1和2分别实现两个接口中的内容,另外,实现类1引用实现类2的行为,并为之设置set方法)

  贴下代码如下:

1.1两个接口,有其各自行为
public interface Person {
    public void useare();
}

public interface Are {
    public String chop();
}

1.2

定义一个实现类1,并引用了实现类2 public  Are are,并为之设置一个set方法
public class Chinese implements Person {

    public Are are;

    public Are getAre() {
        return are;
    }

    public void setAre(Are are) {
        this.are = are;
    }


    @Override
    public void useare() {
        System.out.println(are.chop());
        
    }

}

1.3

实现类2实现了接口2的方法,将斧头变成钢斧

public class steelAre implements Are{
    
    

    @Override
    public String chop() {
        // TODO Auto-generated method stub
        return "钢斧很好使";
    }
    
}


2.创建bean配置,写出两个bean分别对应两个实现类

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>

    <!--  该处的bean对应实现类1,同时给出实现类地址,另外关联上实现类2 ref="steelAre"  -->

    <bean id="chinese" class="test2.Chinese">
        <property name="are" ref="steelAre"/>
    </bean>
    <bean id="steelAre" class="test2.steelAre"/>
</beans>

3.创建运行类

3.1初始化    3.2getbean("主要文件"); 3.3 使用类的行为



public class beantest {
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("bean2.xml");
        Person p=(Person) ac.getBean("chinese");
        p.useare();
    }
}

4.运行结果如下






参考书籍:<<轻量级j2ee企业应用实战>>

Spring框架中XML配置与DTD应用指南 DTD(Document Type Definition,文档类型定义)是一种用于定义XML文档结构的规范。它的作用主要是为了约束XML文档中的元素类型、属性和它们之间的关系。DTD可以分为内部DTD和外部DTD两种。iBatis是一个基于Java的持久层框架,它的主要作用是为了解决数据访问层(Data Access Layer)的复杂性问题。通过使用iBatis,开发者可以将SQL语句从Java代码中分离出来,并且通过简单的XML配置文件或注解定义,就可以实现对数据库的操作。 阅读详情

相关推荐

完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码)

申请公司的苹果开发者账号和企业级的苹果开发者账号时,都会用到邓白氏编码,也就是我们申请苹果开发者账号时需要填写的D-U-N-S Number。     申请这个邓白氏编码是免费的,但是从像华夏邓白氏公司提交申请到可以申请苹果开发者账号来用这个9位的D-U-N-S Number,需要一段时间,我申请得到D-U-N-S Number,用了8个工作日(不算周末哦)

wxw2011014003的博客 9万+

spring创建bean的三种方法

Spring支持如下三种方式创建Bean1:调用构造器创建Bean2:调用静态工厂方法创建Bean3:调用实例工厂方法创建Bean注解@Bean方式Xml方式BeanDefinitionBuilder方式。

bring_coco的博客 2614

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9246

实战讲解及分析Spring新建Bean的几种方式以及创建过程(图+文+源码)

(1)新建Bean的三种方式:XML、@Bean和BeanDefinition; (2)创建Bean的核心过程: (2.1)注册BeanDefinition,填充beanDefinitionMap和beanDefinitionNames; (2.2)注册Bean,填充singletonObjects; (3)通过应用上下文获取Bean,是通过singletonObjects查询获取。

天然玩家的博客 4238

Allegro 16.6 高级技巧实战:用Region规则和动态间距搞定高密度连接器布局布线

本文深入探讨了Allegro 16.6在高密度连接器布局布线中的高级技巧,重点介绍了Region规则和动态间距属性的应用。通过局部规则覆盖和分层控制,解决0.5mm以下引脚间距的布线难题,提升PCB设计效率和质量。

weixin_30352645的博客 439

电商项目功能简述

1.电商行业的技术特点 1.技术性 2.技术范围广 3.分布式 4.高并发,集群,负载均衡,高可用 5.海量数据 6.业务复杂 7.系统安全 2.电商行业的模式 B2B:企业到企业,商家到商家.代表:阿里巴巴 B2C:商家到客户.代表:京东.淘宝商城 C2C:客户到客户.淘宝集市 O2O:线上到线下 3.B2C电商系统架构功能模块 4.B2C电商系统架构功能描述 后台管理系统:管理商品、订单、类...

weixin_45116848的博客 9744

Spring基本用法4——创建Bean的三种方式

        前言:在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定了Bean实例的实现类。因此,&lt;bean../&gt;元素必须指定Bean实例的class属性,但这并不是实例化Bean的唯一方法,本文介绍三种实例化Bean的方法。 本篇文章重点关注以下问题: 调用构造器创建Bean; 调用静态工厂方法创建Bean; 调...

风清扬 426

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58= GetFlowDropDown SQL注入

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58=、eHR/OA一体化智慧云平台、智慧一卡通云平台、行业软件开发与定制、智慧企业管理信息化咨询与项目服务为核心业务的顾问式管理咨询和软件个性定制开发的高科技股份集团公司。同鑫T9eHR信息华管理系统存在SQL注入漏洞,攻击者可通过该漏洞上传shell。关闭互联网暴露面或接口设置访问权限。利用sqlmap进行shell。

iSee857的博客 700

构造Bean的三种方法

Spring JAVA Bean和Spring Bean bean:在计算术语中,称为软件中可以复用的组件 spring bean:由spring IOC容器创建并管理的java对象 JavaBean:在java应用中可以复用的对象,需要以下几个条件: 类的声明public修饰 需要有无参的构造方法 有一些私有的成员变量,要求小写字母打头,且有getter和setter方法 实现序列化接口,serializable接口 创造Bean的三种方法 方法一:构造器实例化Bean 如果bean标签中没有其

sixteenccc的博客 1776

5、快速入门

点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。

leyoliu的博客 3501

CATIA文件的网页预览方案

CATIA是工业设计中广泛使用的专业软件,产出`.CATPart`或 `.CATProduct`等文件类型,当资产数量较大时,我们希望快捷预览这些文件,就有了`CATPart`文件网页预览的需求 但我们知道,网页上无法直接渲染`CATPart`这种复杂的文件, CATIA生成的文件(如 `CATPart` 和 `CATProduct`)不仅包含三维几何信息(例如点、线和曲面),还涵盖了丰富的元数据与专业设计特征。 那有没有办法,能实现CATIA文件在网页上的便捷预览?

weixin_44211633的博客 1449

Spring框架——Bean的Scope(作用域)

1、什么是Bean的Scope 我们知道,BeanFactory除了作为一个轻量级的IOC容器,能够帮我们方便的管理Bean以及Bean之间的依赖关系,它其实还有着一些其它的功能,那就是管理Bean的Scope,或者说管理这些Bean的生命周期。 什么是Scope?亦或者说,什么是Bean的生命周期?Scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,简单点来说,即容器在对象进入其相应的Scope之前,生成并装配这些对象,此时,这些对象就“出生”了;在该对象不再处于这些Scope的限定之

qq_35091353的博客 3263

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集

superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。

a486259的博客 9504

Spring IoC 容器中 XML 配置文件的验证模式解析:DTD 与 XSD 的选择与自动检测机制

Spring IoC容器在解析XML配置文件时支持DTD和XSD两种验证模式。本文分析了两种验证机制的区别:XSD基于XML语法,支持命名空间和丰富数据类型,是Spring 2.0+的默认选择;DTD则适用于早期简单配置。Spring通过XmlBeanDefinitionReader自动检测验证模式,主要依据XML文件是否包含<!DOCTYPE声明。文章还针对常见问题提供了解决方案,如XSD验证失败、混合使用验证模式、网络不可达及编码问题等。开发者应优先使用XSD验证以获得更好的类型安全和工具支持。

刘一说的IT专栏 921

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Spring 系列之 Spring 源码笔记:容器的基本实现-中【三】

this.reader.loadBeanDefinitions(resource) 时序图:XmlBeanFactoryXmlBeanDefinitionReaderEncodedResourceResourceInputSourceloadBeanDefinitions(resource)1new EncodedResource(resource)2encodedResource:EncodedResource3loadBeanDefinitions(encodedResource)4getResourc

fei1234456的博客 423

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring容器管理bean

没有spring容器管理bean,我们获取一个对象,需要手动new 当有了spring管理,我们需要的bean是直接从spring容器中获取 有一个applicationContext.xml(用来配置bean),需要有约束头 然后是加载这个配置文件 加载完后,启动容器,让容器读取配置文件,接着就是从容器中获取bean 步骤: 1.准备jar包 spring-bean...

weixin_34191734的博客 111

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

开启 Spring 之旅:第一个 Spring 程序 ![Spring][Eclipse 使用 Spring][Eclipse 配置 Spring 约束文件][Eclipse 配置 xml 模版]

通过具体实例演示 IoC 容器的使用,步骤如下所示。

码农阿杰的博客 938

Spring框架——Bean的Scope(作用域)易错陷阱解析

Spring框架——Bean的Scope(作用域)易错陷阱解析 阅读先修: 阅读本篇博文之前,您必须熟悉基本的有关Spring框架核心的IOC容器相关知识,以及基本的Bean配置方式。如若对该部分知识点仍然不太熟悉,可参考Spring官方文档有关于Scope的介绍: https://docs.spring.io/spring-framework/docs/cu...

扬俊的小屋 2365

spring源码学习(二)---Spring容器的基本实现

Spring容器的基本实现 文章目录Spring容器的基本实现1.1 beans包的层级结构1.2 读取beans中的文件的两个核心类1.2.1 DefaultListableBeanFactory1.2.1.1 XmlBeanFactory1.2.2 XmlBeanDefinitionReader1.3 容器的基础 XmlBeanFactory1.4加载bean的过程 1.1 beans包的...

tyeerth的博客 194

Spring源码 04 IOC XML方式

进入的构造方法,会先进入的静态代码块。static {/*** 优先加载上下文关闭事件来防止奇怪的类加载问题* WebLogic 8.1 在应用程序关闭的时候出现的 BUG*/这里是针对的特殊处理,与主体逻辑不关,不用过于关注。this()// 创建资源模式处理器if (parent!= null)由于parent没有传,执行结束。= null) {i++) {// 解析给定路径else {// 创建属性解析器。

天河有尽后为涯,星海无边前作岸。 165

spring源码-容器的基本实现

                                                                           spring源码-容器的基本实现 1、容器基本用法 1)实例:  bean的定义:          实体类{属性,set,get} 配置文件:          &lt;bean id="实体类名(首字母小写)"  class="实体类...

不二红薯 212

Spring 的容器

Spring有两个核心的接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。

孤竹的博客 301

spring基础夯实(二)

创建A时会首先记录A对应的beanName,并将创建工厂加入缓存中,对A的属性填充yeshidi奥永populate方法的时候对B进行递归创建,因为B也存在A属性,因此再实例化B的populate方法中又会再次初始化B,直接调用ObjectFactory去创建A。在B中创建依赖A时通过ObjectFactory提供的实例化方法来中断A中的属性填充,使B中持有的A是刚刚初始化没有任何属性的A,因为A与B中的A所表示的属性地址是一样的,所以在A创建好的属性填充自然可以通过B中的A获取,这样就解决了循环依赖。

weixin_43643315的博客 647

spring_XML配置文件注入bean

spring_XML配置文件注入bean

alibh的博客 953

Spring_day01问题记录

Spring_day01问题记录 1.MyBatis,Quartz? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object...

Json Yao的博客 323

spring容器的基本实现-- 读书笔记(219)

spring容器是怎么实现的,它是什么?用什么实现?为什么这样实现?好处是什么? 通过配置文件,定义bean 可配置 2.1 容器基本用法 1 定义一个bean  2 通过配置文件生成一个纯粹的POJO 2.2 功能分析 读取配置文件,反射生成POJO,beanFactory串联。 寥寥数行代码,spring执行的逻辑却很多很多,半本书的文字也只能介绍大致原理。 2.3

qfzhangwei的专栏 401
上一篇: 关于java默认构造器的问题
下一篇: spring ref local="" 和  ref bean=""的区别
IT_COOKIE_SAM
博客等级 码龄10年 34粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值