Ich bin neu in Spring Framework und versuche derzeit herauszufinden, wie eine Datei namens servlet-context.xml
automatisch beim Start der Anwendung geladen wird. Diese Datei enthält eine Bean-Definition, die ich unter Verwendung von @Autowired
in meinem Anwendungscode verwenden möchte.Wie lade ich servlet-context.xml automatisch?
Hinweis: Ich weiß, dass ich von Hand so etwas wie die folgenden tun kann, um Bohnen zu laden, aber das funktioniert nicht, wenn Sie @Autowired
verwenden:
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
SomeObjectType x = (SomeObjectType)context.getBean("someObjectType");
ich diesen Code Probe von einem anderen gefunden Tutorial, die Art erzählt, wie servlet-context.xml
geladen wird, aber es wurde von einem Webanwendungsprojekt genommen, das MVC-Muster verwendete. Ich habe nicht eine Web-App-MVC verwenden, so dass ich glaube nicht, dass es mir gilt:
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
den Inhalt meiner servlet-context.xml
Datei sind die folgenden:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<beans:bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<beans:property name="jndiName" value="java:comp/env/jdbc/Database"/>
</beans:bean>
</beans:beans>
Was ist also die sauberste und einfachste Möglichkeit, servlet-context.xml
Datei zu laden?
was meinst du mit „das funktioniert nicht, wenn Sie @Autowired verwenden“? autowired ist eine Annotation, die im Code erscheint und nichts mit der Definitionsdatei für Beans zu tun hat – mangusta