Java SpringMVC中配置文件和注释使用的区别?

Java SpringMVC中配置文件和注释使用的区别?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我是studyng Spring MVC,我发现了这个简单的Hello World教程: 在本教程中,作者创建了一个名为Beans.xml的Bean配置文件,如下所示: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

我是studyng Spring MVC,我发现了这个简单的Hello World教程:

在本教程中,作者创建了一个名为Beans.xmlBean配置文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
       <property name="message" value="Hello World!"/>
   </bean>

</beans>

使用tis文件,Spring框架可以创建所有定义的bean,并为它们分配一个在标记中定义的唯一ID。我可以使用tag传递对象创建时使用的不同变量的值

这是著名的豆制品厂吗

我的疑问与以下内容有关:在我前面的示例中,我没有使用Bean配置文件来定义我的Bean,但我使用注释来定义什么是Springbean以及这个Bean如何工作(例如,我使用@Controller注释来说明Spring类充当控制器Bean)

使用bean配置文件和使用注释有相同的含义吗

我能两者都用吗

例如,如果我必须配置JDBC,我可以在beans.xml文件中配置它,同时可以为我的控制器类使用注释吗


Tnx

您可以通过xml和注释使用bean配置。您甚至可以在xml配置文件中定义控制器

使用@Controller注释可以使用组件扫描来查找bean。控制器是一个简单的原型bean(这就是为什么您可以简单地将其声明为xml文件)


有关@Controller用法/语义的更多详细信息

是的,您可以这样做。找到下面的一个示例,其中controller已使用注释和sessionFactory编写,并且数据源已创建为连接到服务中的xml bean-

<beans ...>
    <!-- Controller & service base package -->
    <context:component-scan base-package="com.test.employeemanagement.web" />
    <context:component-scan base-package="com.test.employeemanagement.service"/>

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
           ...
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <!-- <value>com.vaannila.domain.User</value> -->
            <value>com.test.employeemanagement.model.Employee</value>
            ...
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            ...
        </props>
    </property>
    </bean>
    ...
</beans>

我希望这对你有帮助。:)

我想你对我说的很清楚。。。我只有另一个问题与您所说的有关:当我使用STS\Eclipse创建一个新的Spring MVC项目时,我没有这个Beans.xml文件,但我有以下xml配置文件:web.xml和servlet-context.xml(第二个包含组件扫描定义),我可以将这些bean配置吗(数据库连接配置)设置为servlet-context.xml,或者我需要一个Beans.xml文件?是的,您可以这样做。将所有db confg设置为servlet上下文,这样维护就更少了。
@Repository
public class EmployeeDaoImpl implements EmployeeDao {

    @Autowired
    private SessionFactory sessionFactory;
}