IDEA集成Maven,使用Spring注解@Value(“${name}“)无法转义

发生缘由

  • 学习Spring中IOC/DI注解开发

环境

  • jdk版本:jdk-16.0.2
  • Idea版本:2021.2
  • 电脑系统:win10

问题描述

源代码如下:

public interface BookDao {
    public void save();
}
@Repository("bookDao")
public class BookDaoImpl implements BookDao {

    @Value("${name}")
    private String name;

    @Override
    public void save() {
        System.out.println(name);
        System.out.println("book dao save ..." + name);
    }
}
@Configuration
@ComponentScan("com.linxuan")
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
}
// jdbc.properties文件内容如下
name=linxuan123
public class App {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
        bookDao.save();
    }
}

运行主方法显示结果如下:

// ${name}
// book dao save ...${name}
// 无法转义

解决方案

  • 无,希望各位大佬赐教

2022年5月2日编辑完毕


2023年2月5日修改:

根据上面的重新布置了一下环境发现没有任何问题,咱也不知道到底问题在哪里。重新布置的环境如下:

在这里插入图片描述

package com.linxuan.dao;

public interface BookDao {
    public void save();

}

package com.linxuan.dao.impl;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;

import com.linxuan.dao.BookDao;

@Repository("bookDao")
public class BookDaoImpl implements BookDao {

    @Value("${name}")
    private String name;

    @Override
    public void save() {
        System.out.println(name);
        System.out.println("book dao save ..." + name);
    }
}

# jdbc.properties文件内容
name=linxuan123
@Configuration
@ComponentScan("com.linxuan")
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
    
}

package com.linxuan;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.linxuan.config.SpringConfig;
import com.linxuan.dao.BookDao;

public class App {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
        bookDao.save();
        ctx.close();
    }
}
// 输出结果如下:
// linxuan123
//book dao save ...linxuan123

上面运行没有任何问题,我也很奇怪之前为什么无法转义成功。现在只能猜测一下了:

  • 导错包了?
  • 某些类文件放错位置了?
  • 引入依赖的时候jar包起冲突了?或者导入依赖的时候出问题了?
  • 一直在错误的环境上运行,修改好一些BUG的时候没有刷新,导致一直在之前的错误环境上运行?
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值