示例中有如下一段代码
public class TestServicePOJOImp implements TestService, Poolable{ private JdbcDAO jdbcDao; public TestServicePOJOImp(JdbcDAO jdbcDao) { this.jdbcDao = jdbcDao; } public void createUser(EventModel em) { .... } }
|
配置文件中是这样写的
<app> <services> <pojoService name="testService" class="com.jdon.framework.test.service.TestServicePOJOImp"/>
<!-- 新增加的配置:jdbcDAO是被TestServiceImp调用的,是为其服务的。 --> <component name="jdbcDAO" class="com.jdon.framework.test.dao.JdbcDAO"/> </services> </app>
|
请问,
TestService testService = (TestService) WebAppUtil.getService("testService ", request);
当我获取bean的时候,component jdbcDAO是怎样被注入到testService中的?是将jdbcDAO作为testService的构造参数吗?还是直接为private JdbcDAO jdbcDao字段赋值?
还有个小问题,
<services> <pojoService name="forumService" class="com.jdon.jivejdon.service.imp.ForumServiceImp"/> <pojoService name="accountService" class="com.jdon.jivejdon.service.imp.account.AccountServiceImp"/> <pojoService name="accountProfileService" class="com.jdon.jivejdon.service.imp.account.AccountProfileServiceImp"/> <pojoService name="forumMessageService" class="com.jdon.jivejdon.service.imp.message.ForumMessageShell"/> <pojoService name="forumMessageQueryService" class="com.jdon.jivejdon.service.imp.message.ForumMessageQueryServiceImp"/> <pojoService name="uploadService" class="com.jdon.jivejdon.service.imp.upload.UploadServiceShell"/> <pojoService name="shortMessageService" class="com.jdon.jivejdon.service.imp.shortmessage.ShortMessageServiceImp"/> <pojoService name="shortMessageQueryService" class="com.jdon.jivejdon.service.imp.shortmessage.ShortMessageQueryServiceImp"/> <component name="messageKernel" class="com.jdon.jivejdon.service.imp.message.MessageKernel"/> <component name="messageRenderingFilter" class="com.jdon.jivejdon.service.imp.message.MessageRenderingFilter"/> <component name="containerUtil" class="com.jdon.jivejdon.service.util.ContainerUtil"/> <component name="sessionContextUtil" class="com.jdon.jivejdon.service.util.SessionContextUtil"/> </services>
|
如果确实是通过构造参数注入的话,jdon的配置文件中好像并未强制要求 component节点作为pojoService 节点的属性,
那么对于下面的这种构造参数过多的类,造成配置文件过于杂乱,不便于开发?
public ForumRepository(ForumDao forumDao,MessageRepository messageRepository,ForumBuilder forumBuilder){ this.forumDao = forumDao; this.messageRepository = messageRepository; this.forumBuilder = forumBuilder; }
|