@CmdspublicclassUserCmds{@Autowiredprivate UserCache userCache;public User getUser(String userName){return userCache.getUser(userName);}publicbooleansaveUser(User user){
User u =getUser(user.getUserName());if(u != null){returnfalse;}else{return userCache.saveUser(user);}}publicbooleanupdateUser(User user){
User u =getUser(user.getUserName());if(u == null){returnfalse;}else{return userCache.updateUser(user);}}publicbooleandeleteUser(String userName){
User u =getUser(userName);if(u == null){returnfalse;}else{return userCache.deleteUser(userName);}}}
publicclassMainTest{publicstaticvoidmain(String[] args){
ApplicationContext applicationContext =newClassPathXmlApplicationContext("context/userContext.xml");
UserCmds userCmds = applicationContext.getBean(UserCmds.class);
User user;// 查询-null
user = userCmds.getUser("mo");
System.out.println(user);// 保存
userCmds.saveUser(newUser("mo","123"));// 查询-user
user = userCmds.getUser("mo");
System.out.println(user);// 更新
userCmds.updateUser(newUser("mo","111"));// 查询-user
user = userCmds.getUser("mo");
System.out.println(user);// 删除
userCmds.deleteUser("mo");// 查询-null
user = userCmds.getUser("mo");
System.out.println(user);}}
测试结果
可以认真看看日志记录,spring扫描、创建、初始化。。。他找到需要注入的bean
[DEBUG][2020-09-2516:18:08,447][DefaultListableBeanFactory]- Creating shared instance of singleton bean 'userCache'[DEBUG][2020-09-2516:18:08,447][DefaultListableBeanFactory]- Creating instance of bean 'userCache'[DEBUG][2020-09-2516:18:08,456][DefaultListableBeanFactory]- Eagerly caching bean 'userCache' to allow for resolving potential circular references
[DEBUG][2020-09-2516:18:08,478][DefaultListableBeanFactory]- Invoking init method 'init' on bean with name 'userCache'
初始化!
[DEBUG][2020-09-2516:18:08,478][DefaultListableBeanFactory]- Finished creating instance of bean 'userCache'[DEBUG][2020-09-2516:18:08,479][DefaultListableBeanFactory]- Creating shared instance of singleton bean 'userCmds'[DEBUG][2020-09-2516:18:08,479][DefaultListableBeanFactory]- Creating instance of bean 'userCmds'[DEBUG][2020-09-2516:18:08,488][InjectionMetadata]- Registered injected element on class[com.lihegame.spring.user.cmds.UserCmds]: AutowiredFieldElement forprivate com.lihegame.spring.user.cache.UserCache com.lihegame.spring.user.cmds.UserCmds.userCache
[DEBUG][2020-09-2516:18:08,489][DefaultListableBeanFactory]- Eagerly caching bean 'userCmds' to allow for resolving potential circular references
[DEBUG][2020-09-2516:18:08,490][InjectionMetadata]- Processing injected element of bean 'userCmds': AutowiredFieldElement forprivate com.lihegame.spring.user.cache.UserCache com.lihegame.spring.user.cmds.UserCmds.userCache
[DEBUG][2020-09-2516:18:08,495][DefaultListableBeanFactory]- Returning cached instance of singleton bean 'userCache'[DEBUG][2020-09-2516:18:08,496][AutowiredAnnotationBeanPostProcessor]- Autowiring by type from bean name 'userCmds' to bean named 'userCache'[DEBUG][2020-09-2516:18:08,594][DefaultListableBeanFactory]- Returning cached instance of singleton bean 'userCmds'
null
User{userName='mo', password='123'}
User{userName='mo', password='111'}
null