@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。下面显示的是一个使用 @Required 注释的示例。

示例:

让我们使 Eclipse IDE 处于工作状态,请按照下列步骤创建一个 Spring 应用程序:

步骤 描述

1 创建一个名为 SpringExample 的项目,并且在所创建项目的 src 文件夹下创建一个名为 com.tutorialspoint 的包。

2 使用 Add External JARs 选项添加所需的 Spring 库文件,就如在 Spring Hello World Example 章节中解释的那样。

3 在 com.tutorialspoint 包下创建 Java 类 Student 和 MainApp。

4 在 src 文件夹下创建 Beans 配置文件 Beans.xml。

5 最后一步是创建所有 Java 文件和 Bean 配置文件的内容,并且按如下解释的那样运行应用程序。

下面是 Student.java 文件的内容:

package com.tutorialspoint;

import org.springframework.beans.factory.annotation.Required;

public class Student {

private Integer age;

private String name;

@Required

public void setAge(Integer age) {

this.age = age;

}

public Integer getAge() {

return age;

}

@Required

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

}

下面是 MainApp.java 文件的内容:

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");

Student student = (Student) context.getBean("student");

System.out.println("Name : " + student.getName() );

System.out.println("Age : " + student.getAge() );

}

}

下面是配置文件 Beans.xml: 文件的内容:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

一旦你已经完成的创建了源文件和 bean 配置文件,让我们运行一下应用程序。如果你的应用程序一切都正常的话,这将引起 BeanInitializationException 异常,并且会输出一下错误信息和其他日志消息:

Property 'age' is required for bean 'student'

下一步,在你按照如下所示从 “age” 属性中删除了注释,你可以尝试运行上面的示例:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

现在上面的示例将产生如下结果:

Name : Zara

Age : 11

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java 中required_通过实例学习Spring @Required注释原理相关推荐

  1. Spring @Required 注释

    转载自  Spring @Required 注释 Spring @Required 注释 @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必 ...

  2. Java中的增强for循环的实现原理与坑

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 在JAVA中,遍历集合和数组一般有以下三种形式: for (int i = 0; i < ...

  3. 浅谈java中的ServerSocket和Socket的通信原理实现聊天及多人聊天

    聊天,QQ,微信,陌陌很多的即时通讯的软件,不管是桌面端还是移动端,在当今社交的时代都是不可或缺的一部分.这时候说Socket和ServerSocket感觉有点老调重弹感觉,相信很多人早就知道如何使用 ...

  4. Java 中的锁分类以及锁的原理

    锁分类与原理 锁的分类 锁的分类及基本概念 Java对象在内存中的布局: 锁的升级过程: 锁的本质: synchronized 与Lock 的区别: 互斥锁的原理: 1.读写锁 2.读写锁的原理 3. ...

  5. java中boot是什么,Spring boot是什么

    Spring Boot是Spring框架的扩展,它消除了设置Spring应用程序所需的样板配置,可以方便快速的来配置和运行应用程序并且还简化了依赖管理使得开发更加便捷 Spring Boot是一个基于 ...

  6. dispatcher在java中什么含义_java – 使用单个注释在root和dispatcher应用程序上下文中自动配置bean...

    假设我创建了一个名为@EnableFeauture的注释,它导入了一个bean配置类EnableFeatureConfiguration.此注释通常位于调度程序配置之上.像视图解析器等必须的bean属 ...

  7. java中factory_Java后台面试--Spring中FactoryBean与BeanFactory的使用及区别

    以前刚转Java的时候去面试被问到过Spring中FactoryBean与BeanFactory的使用及区别,由于之前没有重视这两个的区别,只是在配置文件里面加bean结点并通过注解的形式调用,所以被 ...

  8. java 调用 spring,java中使用redis和spring中调用redis

    1.需要的jar包,配置的pom.xml文件 redis.clients jedis 2.7.2 2.java调用 /** * @文件名称: JedisTest.java * @描述: TODO * ...

  9. java中 never closed_【Spring】在Java使用Spring时的Resource leak: 'applicationContext' is never closed警告...

    在Java使用Spring的时候,在定义完Spring的核心文件,用准备使用ApplicationContext applicationContext =  new ClassPathXmlAppli ...

最新文章

  1. 软件测试实验--数据工厂DataFactory+MySQL数据构造
  2. c语言初学 循环 的灵活使用小案例
  3. html5页面输出语句,使用html5输出文件
  4. LVS nat 是否需要借助iptables 的snat实现负载均衡
  5. 房地产萧条的两个标志
  6. 前滴滴出行产品经理刘飞:写给产品经理的说明书(下)
  7. Python标准库:itertools迭代器函数
  8. java中的异常种类和区别以及处理机制和区别
  9. Ruby 学习笔记6
  10. 店铺淘客软件定制,1688分销软件OEM贴牌配合精细化运营提升店铺流量
  11. bat批量创建文件夹
  12. excel转word后表格超出页面_原来Excel和Word还能这样互转,完全不会格式错乱!
  13. 迈普光彩分享 几个细节教你搭建好LED显示屏舞台
  14. 基于token的多平台身份认证架构设计
  15. 学弟啊,你代码能不能不要写得这么烂?
  16. 机器学习 Python scikit-learn 中文文档(10)Scikit-Learn 处理文本数据
  17. win10自带的删除电脑流氓弹窗软件工具怎么用
  18. 教你游泳【附动画组图】
  19. activemq如何保证消息按顺序消费
  20. 学生党必备读书笔记app推荐

热门文章

  1. 树莓派小车参考方案,了解一下
  2. 学的不是写代码,学的是编程思维!
  3. 超声相控阵合成孔径成像FPGA设计介绍
  4. java 自适应响应式 网站 源码 SSM 生成 静态化 手机 平板 PC
  5. 干货 | 一文带你搞定Python 数据可视化
  6. 如何在同一台电脑上同时运行2个tomcat
  7. Windows 8让程序员们忧心忡忡
  8. General-purpose and introductory examples for the scikit.
  9. PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
  10. 台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下