• spring自定义标签,功能与@required一样


    第一步:新建项目 SecondSpring

    项目结构如下:

    第二步:导入spring相对应的jar包

    过程略...

    第三步:创建@Mandatory 接口

    package com.xuzhiwen.spring92;
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface Mandatory {
        
    }

    第四步:新建House类

    package com.xuzhiwen.spring92;
    
    public class House {
        
        private String name;
        private String address;
        
        @Mandatory
        public void setName(String name) {
            this.name = name;
        }
        
        @Mandatory
        public void setAddress(String address) {
            this.address = address;
        }
        
        @Override
        public String toString() {
            return "House [name=" + name + ", address=" + address + "]";
        }
    }

    第五步:新建spring配置文件

    common.xml

    <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
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
        <import resource="xmlfolder/app1.xml" />
        <import resource="xmlfolder/innerbean.xml" />
        <import resource="xmlfolder/singleton.xml" />
        <import resource="xmlfolder/annotation.xml" />
        <import resource="xmlfolder/gather.xml" />
        <import resource="xmlfolder/date.xml" />
        <import resource="xmlfolder/db.xml" />
        <import resource="xmlfolder/parent.xml" />
        <import resource="xmlFile/abstract.xml" />
        <import resource="xmlFile/cat.xml" />
        <import resource="xmlFile/required.xml" />
        
        <import resource="xmlFile/mandatory.xml" />
    </beans>    

    mandatory.xml

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
        
        
        <!-- 将@Mandatory注释到"RequiredAnnotationBeanPostProcessor"类中 -->
        <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor">
            <property name="requiredAnnotationType" value="com.xuzhiwen.spring92.Mandatory"/>
        </bean>    
        
        <bean id="house" class="com.xuzhiwen.spring92.House">
            <property name="name" value="tom" />
            <property name="address" value="china" />
        </bean>
        
    </beans>    

    第六步:新建测试类

    Test.java

    package com.xuzhiwen.spring92;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
        public static void main(String[] args) {
            ApplicationContext app = new ClassPathXmlApplicationContext("common.xml");
            House house = (House) app.getBean("house");
            System.out.println(house);
        }
    }

    第七步:运行结果如下

  • 相关阅读:
    Kafka相关知识点
    好的前端界面
    linux下配置go环境
    插入排序(数据是局部有序的)
    选择排序
    spring jpa 条件查询统计
    java代码优化
    JAVA创建临时文件IO
    spring防止表单重复提交
    Java文件下载时所输出文件名乱码问题
  • 原文地址:https://www.cnblogs.com/beibidewomen/p/7411916.html
Copyright © 2020-2023  润新知