相关疑难解决方法(0)

Spring注入Servlet

所以我看到了这个问题:

Spring依赖注入到其他实例

并想知道我的方法是否会成功.

1)在Spring应用程序上下文中声明bean

    <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="initialSize" value="${jdbc.initialSize}" />
        <property name="validationQuery" value="${jdbc.validationQuery}" /> 
        <property name="testOnBorrow" value="${jdbc.testOnBorrow}" />
    </bean>

    <bean id="apiData" class="com.mydomain.api.data.ApiData">
        <property name="dataSource" ref="dataSource" />
        <property name="apiLogger" ref="apiLogger" />
    </bean>

    <bean id="apiLogging" class="com.mydomain.api.data.ApiLogger">
        <property name="dataSource" ref="dataSource" />
    </bean>
Run Code Online (Sandbox Code Playgroud)

2)覆盖我的servlet的init方法,如下所示:

    @Override
    public void init(ServletConfig config) throws ServletException {
       super.init(config);

       ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

       this.apiData = (ApiData)ac.getBean("apiData");
       this.apiLogger = (ApiLogger)ac.getBean("apiLogger");
    }
Run Code Online (Sandbox Code Playgroud)

这个工作还是Spring还没准备好在Web应用程序部署中将bean交付给我的servlet?我是否必须做一些更传统的事情,比如把豆子放进去web.xml …

java spring servlets dependency-injection

23
推荐指数
3
解决办法
3万
查看次数

我想使用Spring在servlet中注入一个对象

我在我的应用程序中有两个servlet,我希望将一个A类对象注入到两个servlet中,我也希望在整个应用程序中使用相同的ApplicationContext,即在SO的这个问题的第一个答案中提到的两个servlet: Spring注入Servlet

现在我经历了很多像这样的问题,但找不到与我的问题相符的东西.为了更好地解释,我在这里写一个粗略的代码

public class servletOne extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }
}

public class servletTwo extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }
}
Run Code Online (Sandbox Code Playgroud)

所以上面是applicationContext.xml中的两个服务器我想将一个对象传递给这两个servlet,因此按照惯例,我想要一个像这样的功能:

<bean id="servletFirst" class="mypackage.servletOne">
        <property name="message" ref="classObject" />


</bean>
<bean id="servletFirst" class="mypackage.servletTwo">
        <property name="message" ref="classObject" />


</bean>

<bean id="classObject" class="mypackage.classA">

    </bean>
Run Code Online (Sandbox Code Playgroud)

我不知道这是否可能,我是春天的新手,我只有依赖注入的基本知识.

如果有人能帮我这个,我真的很感激.这将清除我的许多疑虑并帮助我在学习Spring的过程中前进.

这是web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>servletOne</servlet-name>
        <servlet-class>mypackage.servletOne</servlet-class>
    </servlet>
<servlet> …
Run Code Online (Sandbox Code Playgroud)

java spring servlets

6
推荐指数
1
解决办法
8973
查看次数

spring boot应用程序 - 从静态上下文获取bean

我有一个在Spring之外创建的类的实例,我希望能够访问Spring bean,以便它可以触发一个事件并被Spring bean观察到.我没有使用Spring Web,我的应用程序是通过spring boot从命令行运行的.

spring spring-boot

1
推荐指数
1
解决办法
6409
查看次数