使用注解给属性赋值:
给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;
第五种:
将服务类的公共接口设置为泛型:
并在实现类中指定泛型的类型:
然后在控制层获取的时候:
测试方法:
输出结果:
这里使用泛型,那么就相当于需要在使用泛型方法之前将泛型指定为一个类,那么就相当于在自动注入的时候已经指定了类,自然就能成功注入。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)