这里明明有两个UserDao的实现类,且实现类没有做任何处理,为什么没有出现老师视频里的错误
IUserDao接口类
1 2 3 4 | package com.imooc.spring.ioc.dao; public interface IUserDao { } |
UserDao类
1 2 3 4 5 6 7 8 9 10 11 12 | package com.imooc.spring.ioc.dao; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Repository; //组件类型注解默认beanId为类名首字母小写 //beadId = userDao @Repository public class UserDao implements IUserDao{ public UserDao(){ System.out.println( "正在创建UserDao:" + this ); } } |
UserOracleDao类
1 2 3 4 5 6 7 8 9 10 11 | package com.imooc.spring.ioc.dao; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Repository; @Repository public class UserOracleDao implements IUserDao { public UserOracleDao(){ System.out.println( "正在创建UserOracleDao:" + this ); } } |
UserService类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.imooc.spring.ioc.service; import com.imooc.spring.ioc.dao.IUserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { public UserService(){ System.out.println( "正在创建UserService:" + this ); } @Autowired private IUserDao userDao; public IUserDao getUserdao() { return userDao; } // public void setUserDao(IUserDao userDao) { // System.out.println("setUdao:" + userDao); // this.userDao = userDao; // } } |
SpringApplication类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package com.imooc.spring.ioc; import com.imooc.spring.ioc.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringApplication { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "classpath:applicationContext.xml" ); // String[] ids = context.getBeanDefinitionNames(); // for(String id :ids){ // System.out.println(id+":"+context.getBean(id)); // } UserService userService = context.getBean( "userService" , UserService. class ); System.out.println(userService.getUserdao()); } } |
运行结果:
两个实现类被同时创建了
11
收起
正在回答 回答被采纳积分+1
1回答
Java工程师 2024版
- 参与学习 2037 人
- 提交作业 1409 份
- 解答问题 1268 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧