是否可以在同一个JavaWeb应用程序中使用xml创建一些bean,使用基于注释的方法创建其余的bean
我有一个web项目,其中使用SpringJava注释注入了bean。现在在同一个web项目中,我想使用基于xml的配置创建几个bean。(我很难在这里详细解释,为什么我要这么做)。为此,我在我的是否可以在同一个JavaWeb应用程序中使用xml创建一些bean,使用基于注释的方法创建其余的bean,java,spring,spring-mvc,jakarta-ee,Java,Spring,Spring Mvc,Jakarta Ee,我有一个web项目,其中使用SpringJava注释注入了bean。现在在同一个web项目中,我想使用基于xml的配置创建几个bean。(我很难在这里详细解释,为什么我要这么做)。为此,我在我的web.xml中指定了ContextLoaderListener和contextConfigLocation。这样做之后,当我在服务器上部署我的project war时,我发现只有那些使用xml(applicationContext.xml)创建的bean被创建,Spring无法创建和注入使用基于注释的方
web.xml
中指定了ContextLoaderListener
和contextConfigLocation
。这样做之后,当我在服务器上部署我的project war时,我发现只有那些使用xml(applicationContext.xml
)创建的bean被创建,Spring无法创建和注入使用基于注释的方法创建的bean
这种类型的用例是否可以实现,即为同一个项目创建一些使用注释的bean和一些使用applicationContext.xml的bean。如果是的话,我将非常感谢您在这方面的帮助
谢谢。试试以下方法:
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.Bean;
@Configuration
@ImportResource("spring-xml-configuration-file.xml")
public class ConfigClass {
...
@Bean
public Object bean1() {
...
}
}
@配置指定java类是Spring的配置。
和@TmportResource允许这些类使用xml配置文件中定义的bean
是的,有可能
您需要在applicationContext.xml
中添加下面的
标记,以识别带注释的Springbean并将其实例化
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- Annotated beans base package location to get it instantiated at the time of spring context startup --> <context:component-scan base-package="com.example.service.beans"/> <!-- normal bean configured in xml --> <bean id="userDao" class="com.example.dao.UserDao" /> </beans>
上述基本包下的所有带注释的bean将与您在xml文件中配置的普通bean(
)一起实例化。不要忘记将
添加到spring context-.xsd
中applicationContext.xml
context:component scan