我正在学习Spring MVC,我找到了这个简单的Hello World教程:http://www.tutorialspoint.com/spring/spring_hello_world_example.htm
在本教程中,作者创建了一个名为 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"
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 Framework可以创建定义的所有bean,并为它们分配tag中定义的唯一ID。我可以使用tag来传递对象创建时使用的不同变量的值。
这是众所周知的Bean Factory吗?
我的疑问与以下内容有关:在我之前的示例中,我没有使用Bean配置文件来定义我的bean,但是我使用注释来定义什么是Spring bean以及这个bean是如何工作的(例如我使用 @Controller 注释来说Spring将一个类充当控制器Bean)
使用bean配置文件并使用注释具有相同的含义?
我可以同时使用吗?
例如,如果我必须配置JDBC,我可以在beans.xml文件中配置它,同时我可以为Controller类使用注释吗?
TNX
答案 0 :(得分:1)
是的,你可以做那件事。查找下面的示例,其中控制器已使用注释和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>
注入SessionFactory的服务示例。
@Repository
public class EmployeeDaoImpl implements EmployeeDao {
@Autowired
private SessionFactory sessionFactory;
}
我希望它可以帮到你。 :)
答案 1 :(得分:0)
您可以通过xml和注释使用bean配置。您甚至可以在xml配置文件中定义控制器。
使用@Controller注释允许您使用组件扫描来查找您的bean。 Controller是一个简单的构造型bean(这就是为什么你可以简单地将它声明为你的xml文件)。
有关@Controller here
的用法/语义的更多详细信息