13-spring学习-class类型表达式

Class表达式

spring中对于class反射机制也有自己的处理。

1,class::使用T(类名)的形式可以取得一个指定泛型类型的Class对象

范例:

package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class TestSimple2 {
    
    public static void main(String[] args) {
        
        ExpressionParser parser=new SpelExpressionParser();
        Expression exp=parser.parseExpression("T(String)");
        EvaluationContext context=new StandardEvaluationContext();
        System.out.println(exp.getValue(context));
    }
}

运行结果:

class java.lang.String

计算结果:Class<String>。

 

2,静态属性:如果调用的静态属性则使用:“T(类).静态属性名称”。

Expression exp=parser.parseExpression("T(Integer).MAX_VALUE");

运行结果:

 

3,静态方法

例如在Integer类里面有一个parseInt()的方法。此方法可以接收一个字符串,同时返回一个Int型数据

范例:

Expression exp=parser.parseExpression("T(Integer).parseInt('123123')");

运行结果:

 

4,无参构造实例化

虽然给出了静态操作,但是严格来说使用最多的情况一定是类产生实例化对象,此处依然可以使用同样的方式完成,可以直接使用“new 类型()”的方式实例化对象。

范例:实例化Date对象。

package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class TestSimple2 {
    
    public static void main(String[] args) {
        
        ExpressionParser parser=new SpelExpressionParser();
        Expression exp=parser.parseExpression("new java.util.Date()");
        EvaluationContext context=new StandardEvaluationContext();
        System.out.println(exp.getValue(context));
    }
}

运行结果:

 

但是现在都是调用无参构造,如何调用有参构造。

5,有参构造实例化

Expression exp=parser.parseExpression("new String('hello')");

运行结果:

 

6,Instanceof:在对象的开发过程中,也可以进行实例对象类型的判断。

使用方式:对象实例   instanceof  T(类)

范例:判断一个字符串是否String的实例。

package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class TestSimple2 {
    
    public static void main(String[] args) {
        
        ExpressionParser parser=new SpelExpressionParser();
        Expression exp=parser.parseExpression("'hello' instanceof T(String)");
        EvaluationContext context=new StandardEvaluationContext();
        System.out.println(exp.getValue(context));
    }
}

注意:上面的String一定要加上T(),否则就会报错

运行结果:

 

 

 利用字符串完整实现类反射机制的各种操作,它的各种操作只能处理很简单的功能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`classpath:logback-spring.xml` 是一个文件路径的表达式,它表示在类路径下查找名为 `logback-spring.xml` 的文件。 在使用 Spring Boot 时,`logback-spring.xml` 文件通常用于配置日志记录器和日志输出的方式。Spring Boot 默认支持 Logback 作为日志框架,因此你可以在类路径下创建一个名为 `logback-spring.xml` 的文件来配置日志。 你可以按照以下步骤来使用 `logback-spring.xml` 文件进行日志配置: 1. 在你的项目资源文件夹(一般是 `src/main/resources`)下创建一个名为 `logback-spring.xml` 的文件。 2. 在 `logback-spring.xml` 文件中,你可以使用 Logback 的 XML 配置语法来定义日志记录器、日志输出方式、日志格式等。你可以根据自己的需求进行配置。 以下是一个简单的 `logback-spring.xml` 文件示例,用于将日志输出到控制台: ```xml <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="CONSOLE" /> </root> </configuration> ``` 这个示例配置了一个名为 `CONSOLE` 的控制台输出日志的 appender,并定义了日志输出的格式。 3. 将 `logback-spring.xml` 文件放置在类路径下,例如将它放置在 `src/main/resources` 目录下。 当你的应用程序启动时,它将自动加载并应用 `logback-spring.xml` 文件中的配置。 希望这能帮助到你进行日志配置。如果你有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值