ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring类型转换器和静态代理

2022-06-22 02:01:04  阅读:121  来源: 互联网

标签:静态 Spring xzit class 转换器 import model com public


1、创建一个类型转换器,可以将用户给定的工资(Double)类型,转换成BigDecimal类型

2、使用静态代理模式,完成孙悟空对高翠兰的代理

   孙悟空根据高翠兰的样貌,变成高翠兰,可以和猪八戒战斗,可以抓住猪八戒

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">
    <bean id="person" class="com.xzit.model.Person" p:name="张三" p:age="20" p:birthday="1999/12/12"></bean>
    <!-- 自定义类型转换器 -->
    <bean id="converter" class="com.xzit.model.DateConverter" p:pattern="yyyy/MM/dd"></bean>
    <!-- 对类型转换器进行注册 -->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <ref bean="converter"></ref>
            </set>
        </property>
    </bean>
    <bean id="stu" class="com.xzit.model.Student" p:name="李四" p:birth="1997/02/01"></bean>
</beans>
package com.xzit.model;

import lombok.Data;
import org.springframework.core.convert.converter.Converter;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

@Data
public class DateConverter implements Converter<String, LocalDate> {
    private String pattern;
    @Override
    public LocalDate convert(String source) {
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern(pattern);
        LocalDate date=LocalDate.parse(source,formatter);
        return date;
    }
}
package com.xzit.model;

import lombok.Data;

import java.time.LocalDate;

@Data
public class Person {
    private String name;
    private int age;
    private LocalDate birthday;
}
package com.xzit.model;

import lombok.Data;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

@Data
public class Student {
    private String name;
    private LocalDate birth;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", birth=" + birth.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")) +
                '}';
    }
}
package com.xzit.model;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
        //Person bean = context.getBean(Person.class);
        Student student=context.getBean(Student.class);
        System.out.println(student);
        System.out.println(student.getBirth().getClass().getName());
    }
}

 

 

package com.xzit.model;

public interface Change {
    void change();
}
package com.xzit.model;

public class GaoYuLan implements Change{

    @Override
    public void change() {
        System.out.println("高玉兰抓住猪八戒");
    }
}
package com.xzit.model;

public class WuKong implements Change{
    private GaoYuLan gaoYuLan;
    @Override
    public void change() {
        wukong();
        if (gaoYuLan==null)
            gaoYuLan=new GaoYuLan();
        gaoYuLan.change();
    }
    public void wukong(){
        System.out.println("孙悟空变成");
    }
}
package com.xzit.test;

import com.xzit.model.Change;
import com.xzit.model.WuKong;

public class Test2 {
    public static void main(String[] args) {
        Change c=new WuKong();
        c.change();
    }
}

 

标签:静态,Spring,xzit,class,转换器,import,model,com,public
来源: https://www.cnblogs.com/zengyu1234/p/16399019.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有