随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

使用注解给属性赋值:

给User类创建一个name属性并使用@Value()注解赋值:

 

 测试方法:

 

 结果:

 

 成功赋值!

 

使用注解赋值除了可以直接赋值以外,还可以使用${}#{}

 其中#{}中写SpEL表达式:

创建资源文件:

 

 然后在xml中配置(引用外部资源文件):

 

 然后是User类中填写:

 

 

 

 

 新建一个Bean;

 

 在User类中获取name:

 

 

 

 结果:

 

 

属性值的自动注入:

在service层创建方法:

 

 在控制层创建方法:

 

 并在属性上添加注解@Autowired进行自动注入:

 

 dao中的方法:

 

 结果:

1
2
3
4
5
6
7
8
9
10
使用@Autowired来实现自动注入
     bytype     byname
    * 默认优先根据类型去匹配
    * 如果匹配到多个类型则会按照名字匹配
    * 如果名又没有匹配到则会报错 
            1.可以去修改属性的名字对应bean的名字:userServiceImpl
            2.可以去修改Bean的名字对应属性的名字:@Service("userService")
     3.可以通过@Qualifier设置属性的类名字
            4.可以通过@Primary设置其中一个Bean为主要的自动注入Bean: @Primary
            5.使用泛型作为自动注入的限定符

  

当有两个Bean都实现了同一个接口,此时按照类型查找Bean就会报错,那么就有三种方法解决:

第一种:

 

 第二种:

 

 第三种:

首先UserServiceImpl的方法中输出:

 

 RoleServiceImpl中输出:

 

 使用类名字:

 

 虽然属性是roleServiceImpl,但是输出结果:

 

 使用的是UserServiceImpl中的方法;

 

第四种:

 

 

 

 测试:

 

 输出结果:

 

 发现不会报错,使用的是设置的主要Bean;

 

第五种:

将服务类的公共接口设置为泛型:

 

 并在实现类中指定泛型的类型:

 

 

 

 然后在控制层获取的时候:

 

 测试方法:

 

 输出结果:

 

 

这里使用泛型,那么就相当于需要在使用泛型方法之前将泛型指定为一个类,那么就相当于在自动注入的时候已经指定了类,自然就能成功注入。

 

posted on   时间完全不够用啊  阅读(316)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示