【java ee】新手提个spring ioc容器的简单问题

    ApplicationContext acx = new ClassPathXmlApplicationContext("applicationContext-mybatis.xml");

最近刚学开spring+mybatis整合

请问这句话是要放在哪个层里面?

我是放在servlet里面的

还有就是每一个servlet里都要写这句话吗?

每个servlet使用后这个容器需要关闭吗?

这个一般用于测试吧在Junit单元测试中可以通过ClassPathXmlApplicationContext加载配置文件进行代码的测试

spring+mybatis整合,首先web.xml中引入spring的配置文件,然后在spring配置文件中引入mybatis的配置文件;
你这个是需要做本地测试,main方法中使用或者单元测试时使用的。

ClassPathXmlApplicationContext是spring容器的一种上下文,在测试时可以用到,如果想跑服务的话可以在web.xml里面配置上下文信息
配置如下

contextConfigLocation

classpath*:applicationContext-mybatis.xm

图片说明

spring ioc可以自动注入?

其实你可以使用spring的标签注入,其实可以在里面注入你需要的数据库操作方法,然后在调用数据库需要的Servlet中写上你注入类的setting方法也可以使用

在web.xml里面加入spring的 listener 监听器, 然后每个servlet里面可以从servletContext里面获取 spring的容器,

在web.xml中,加入

<!-- spring配置文件位置 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext-mybatis.xml</param-value>
</context-param>
<!-- 上下文监听器,用于加载配置文件 -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

即可。