学习Spring的第二天注解开发
本文最后更新于 505 天前,其中的信息可能已经有所发展或是发生改变。

前言

那么第二天的主要目标是学习注解开发,并且今天的作业没有目标,按照老师的代码直接模仿就行

课程文章:Sping第二天|胖叔讲JAVA

项目代码已经全部托管到github

问题与解决方案

@value+el表达式注入属性,需要给操作的字段生成setter和getter方法

首先是第一个出现的问题

在我测试el注入的代码时

public class DITest {
    @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:annotation/di-value-bean.xml");
        User user = context.getBean(User.class);
        System.out.println(user);
    }


    @Test
    public void test2(){
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:annotation/di-value-bean.xml");
        Role role = context.getBean(Role.class);
        System.out.println(role);
    }

报错EL1008E: Property or field ‘name’ cannot be found on object of type ‘alantorp.annotation.di.value.User’ – maybe not public or not valid?

并且是在我添加Role类和test2方法后出现的

经过删除文件和修改内容的排查后发现,在Role类里的这段代码的user系统显示Cannot resolve variable ‘user’

    @Value("#{user.name+'的角色'}")
    private String des;

但是进到配置文件里,配置文件显然以及注册并命名了

其实并不是没有找到,而是User类中name属性是private,并且没有提供get方法,所以IOC无法给你user的name属性,于是我在User中添加get方法,然后重新测试

ok,问题解决

properties读出的数据显示???

在我进行Test3的测试时,name显示的数据出现乱码,其他正常,其中只要name为中文,如图

很好猜到这是idea的编码格式问题,仔细一看果然不是UTF-8

那么就进入到idea的setting里更改file编码

并且删除原有文件,重新编写即可

整合junit5空指针错误

同这篇文章的问题一样spring整合junit5单元测试框架,是因为导的包不对

import org.junit.Test;//4.13
import org.junit.jupiter.api.Test;//5.7.2

这里需要导入junit5.7.2,我却导入了4.13,更换后测试正常

当前文章: 《学习Spring的第二天注解开发》
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇