Spring 如何初始化一个容器

 我来答
百度网友96ffcf7
2015-06-28 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118725
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部

写一个类,实现InitializingBean接口,然后交由spring容器管理

Java代码  
public class InitDataListener implements InitializingBean, ServletContextAware{  
  
    private UserService userService;//属性。和配置文件对应property name对应  
    private Logger log = Logger.getLogger(InitDataListener.class);  
      
    public UserService getUserService() {  
        return userService;  
    }  
    public void setUserService(UserService userService) {  
        this.userService = userService;  
    }  
  
    @Override  
    public void afterPropertiesSet() throws Exception {  
        //在这个方法里面写 初始化的数据也可以。  
          
    }  
    @Override  
    public void setServletContext(ServletContext arg0) {  
          
        //userMap容器存放 userList(用户数据)  
        List<User> userList = new ArrayList<User>();   
        try {  
            userList = userService.queryAllUser();  
            Map<String, Object> userMap = CachFactory.getInstance().createCach("userMap");  
//一个工厂模式和单例模式的使用。文档最后有代码  
            for(User user:userList){  
                userMap.put(user.getUserid(), user);  
            }  
              
        } catch (Exception e) {  
            log.error("queryAllUser error系统初始化查询所有用户出错");  
        }  
          
    System.out.println(userList.size());  
  
}  
 
Java代码  
<!-- spring系统启动以后,加载该类,查询所有数据    -->  
<bean class="adtec.init.InitDataListener">  
    <property name="userService" ref="userService"></property>  
</bean>
渠崽庸9556
2013-11-25 · 超过55用户采纳过TA的回答
知道答主
回答量:161
采纳率:0%
帮助的人:53.7万
展开全部
BeanFactory factory = new XmlBeanFactory(resource); 3:ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"applicationContext.xml", "applicationContext-part2.xml"}); BeanFactory factory = (BeanFactory) context;详细展开 : 一:org.springframework.core.io包中主要是各样的Resource类 1:类名是斜体的表示是抽象类,正体的表示普通类2:3: 温昱说图org.springframework.core.io包中主要是各样的Resource类,Spring的 Resource 接口是为了提供更强的访问底层资源能力的抽象。相当巧妙的地方在于,为何AbstractResource的子类有的override了getFile()而有的没有?这是因为在AbstractResource的getFile()方法设计为抛出异常,如果子类没有重写此方法,说明子类不支持通过绝对路径查找资源的方式,而override的子类则提供自己的实现。这里通过类的层次设计,充分利用继承带来的优点,避免了大量的条件语句。 二:关于 org.springframework.beans.factory 包和 org.springframework.context 包: 1:BeanFactory 是个接口,LifecycleBean 是个类它负责管理bean的生命周期,它实现了4个接口,并且有一个 BeanFactory 类型的变量 owningFactory org.springframework.beans.factory包下面的 而是 org.springframework.beans.factory.xml下面的 2。 ApplicationContext 也是个接口,它继承的 ListableBeanFactory 接口 又 继承 BeanFactory 接口 public interface ApplicationContext extends ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { }public interface ListableBeanFactory extends BeanFactory { } Spring的bean包支持通过编码方式管理和操作bean的基本功能,ApplicationContext则以Framework的方式提供BeanFactory的所有功能。使用 ApplicationContext,你可以让系统加载你的bean,例如: 在Servlet容器初始化ContextLoaderServlet时,通过ContextLoader类加载Spring Framework),而不是使用编码方式来加载。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式