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

微 网站购物商城网页模板

微 网站,购物商城网页模板,公司网站建设怎么协调内容与保密,网站建设兼职劳务协议书一.概述Value注解是如何工作的,大致分为以下几个步骤:1.获取Value值2.解析${}3.解析#{SEL表达式}(对于这种情况本文没有演示)4.类型转换二.测试package com.example.springdemo.demos.a14;import org.springframework.beans.facto…

一.概述

        @Value注解是如何工作的,大致分为以下几个步骤:

1.获取Value值

2.解析${}

3.解析#{SEL表达式}(对于这种情况本文没有演示)

4.类型转换

二.测试

package com.example.springdemo.demos.a14;import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.DependencyDescriptor;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver;
import org.springframework.stereotype.Component;import java.lang.reflect.Field;/*** @author zhou* @version 1.0* @description TODO* @date 2025/8/31 20:58*/
@Configuration
public class TestValue {public static void main(String[] args) throws NoSuchFieldException {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TestValue.class);ContextAnnotationAutowireCandidateResolver resolver = new ContextAnnotationAutowireCandidateResolver();resolver.setBeanFactory(context.getDefaultListableBeanFactory());Field home = Bean1.class.getDeclaredField("home");extracted(context, resolver, home);Field age = Bean1.class.getDeclaredField("age");extracted2(context,resolver,age);}private static void extracted(AnnotationConfigApplicationContext context, ContextAnnotationAutowireCandidateResolver resolver, Field field) {DependencyDescriptor descriptor = new DependencyDescriptor(field,true);//获取@Value的内容String value = resolver.getSuggestedValue(descriptor).toString();System.out.println(value);//解析${}value = context.getEnvironment().resolvePlaceholders(value);System.out.println(value);}private static void extracted2(AnnotationConfigApplicationContext context, ContextAnnotationAutowireCandidateResolver resolver, Field field) {DependencyDescriptor descriptor = new DependencyDescriptor(field,true);//获取@Value的内容String value = resolver.getSuggestedValue(descriptor).toString();System.out.println(value);//解析${}value = context.getEnvironment().resolvePlaceholders(value);System.out.println(value);//类型转换Object age = context.getBeanFactory().getTypeConverter().convertIfNecessary(value, descriptor.getDependencyType());System.out.println(age.getClass());}public class Bean1{@Value("${JAVA_HOME}")private String home;@Value("18")private int age;}}

文中抽取了两个方法对@Value注解作测试

1.解析带有${}的属性

@Value("${JAVA_HOME}")
private String home;

        测试方法一里面详细介绍了步骤,首先需要拿到DependencyDescriptor对象,然后通过ContextAnnotationAutowireCandidateResolver对象到@Value里面的值。原始的值是${JAVA_HOME},随后通过context.getEnvironment().resolvePlaceholders方法解析里面的值。

2.类型不一致转换

@Value("18")
private int age;

@Value里面的值类型是String与int类型不一致,前面获取值的步骤是一致的,不同的地方在于最后一步,利用下面的类型转换器把String类型转换为Integer类型,后面自动拆箱为int类型。

 //类型转换Object age = context.getBeanFactory().getTypeConverter().convertIfNecessary(value, descriptor.getDependencyType());System.out.println(age.getClass());

测试结果:

http://www.dtcms.com/a/476965.html

相关文章:

  • 自己编写代码建设微网站自适应网站开发seo
  • 做网站的属于什么专业?深圳网站建设手机网站建设
  • 中国建设部网官方网站多少钱的英文翻译
  • 成品短视频网站源码搭建昆明做网站建设价位
  • node做网站建设网站商城
  • 成都网站制作汕头建设网站需要注意事项
  • 网站幻灯通栏代码网站上线稳定后工作
  • wordpress 删除超文本福建网站优化建设
  • 怎么样创建个人网站可以分为( )
  • 广州自助建设网站平台织梦网站建设培训
  • 企业手机网站建设渠道宁波商城网站建设
  • 做视频采集网站违法吗网站seo策划方案设计
  • app官网网站建设怎么做分享软件的网站
  • 设计一个网站需要什么湛江网站建设制作费用
  • 门户网站建设进展情况农村电商c2c模式
  • 做网站服务网站建设与维护的试题卷判断题
  • 模版免费网站网站快速注册
  • 网站建设必须在服务器上传图片到 wordpress评论
  • 网站建设推广方案吴江建设工程招标中心网站
  • 番禺做网站公司数据库网站模板
  • 怎么样做微网站企业网站建设的四大因素
  • 开奖视频网站开发免费ppt模板下载在哪里下载
  • 彩票网站建设平台广州网站站建设培训
  • 网站建设 响应式 北京[wordpress
  • 宁夏建设工程质量网站关键词网站建设公司
  • 东莞营销型网站建设费用天眼通查公司查询
  • 怎样建立网站卖东西手机百度账号登录入口
  • 珠海建设工程交易中心网站平面设计主要做什么内容
  • 那些网站是php做的做网页是什么专业
  • 网站开发技术历史重庆云阳网站建设