基本上就是用@Component提示Spring生成bean的实例,用@Resource把该bean中用到的其他bean注入(射)进去。。。 好处就是你不用再写spring配置文件了,不用再写set方法了。。。
@Component 相当于
<bean id="xxxx" class="XXXXX.XXXXX" />
@Resource 相当于<bean>↓使用到的其他对象</bean>
<property name="sessionFactory" ref="mySessionFactory" />
<bean id="xxxx" class="XXXXX.XXXXX" />
@Resource 相当于<bean>↓使用到的其他对象</bean>
<property name="sessionFactory" ref="mySessionFactory" />
1. @Component + @Resource :
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" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- <context:annotation-config /> 有了component-scan,这句就可以不写--> <context:component-scan base-package="test.service.impl" /> <context:component-scan base-package="test.dao.impl" /> <!-- 如果你不写@Component,那么下面两句就要写 --> <!-- <bean id="testDao" class="test.dao.impl.TestDAOImpl" /> --> <!-- <bean id="testService" class="test.service.impl.TestServiceImpl" /> --> </beans>
TestDAO.java
package test.dao; public interface TestDAO { public void insert(); }
TestDAOImpl.java
package test.dao.impl; import org.springframework.stereotype.Component; import test.dao.TestDAO; @Component public class TestDAOImpl implements TestDAO { @Override public void insert() { // TODO 自動生成されたメソッド・スタブ System.out.println("invoke dao success!"); } }
TestService.java
package test.service; public interface TestService { public void testDaoInsert(); }
TestServiceImpl.java
package test.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Component; import test.dao.TestDAO; import test.service.TestService; @Component public class TestServiceImpl implements TestService { @Resource private TestDAO testDao; @Override public void testDaoInsert() { // TODO 自動生成されたメソッド・スタブ testDao.insert(); System.out.println("invoke service success!"); } }
在Action中调用一下:(至于struts2和spring的关联配置还有对应的jsp就略去了...)
package tutorial.hello; import javax.annotation.Resource; import test.service.TestService; import com.opensymphony.xwork2.ActionSupport; public class HelloAction { @Resource private TestService testService; public String doHello() { testService.testDaoInsert(); return ActionSupport.SUCCESS; } }
运行结果
invoke dao success!
invoke service success!
invoke service success!
2. @Component + @Autowired :
相关推荐
Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...
- `@Autowired`: 自动装配依赖,Spring会根据类型或属性名自动找到合适的bean进行注入。 - `@Qualifier`: 当有多个相同类型的bean时,使用`@Qualifier`指定具体要注入的bean。 - `@Resource`: 与`@Autowired`类似...
本文旨在深入探讨Spring框架中基于注解的依赖注入机制,特别是`@Repository`、`@Service`、`@Controller`和`@Component`等核心注解的使用方法,以及如何利用`<context:component-scan>`自动扫描功能,实现类级别的...
在Spring框架中,Annotation配置是一种简洁且强大的方式来管理Bean的定义和依赖注入,它消除了传统的XML配置文件,使得代码更加简洁、易读。在Spring 3.0及以上版本中,Annotation配置得到了广泛的应用。 首先,...
### 详解Spring 3.0基于Annotation的依赖注入实现 #### 概述 Spring框架作为一个广泛使用的Java开发框架,提供了强大的依赖注入(Dependency Injection, DI)能力,帮助开发者轻松管理和组织复杂的Java应用。随着...
例如,在Web开发中,我们可以使用自动注入来注入Controller、Service和DAO等Bean。在微服务架构中,我们可以使用自动注入来注入微服务之间的依赖关系。 Spring Boot的自动注入机制是一个强大的功能,可以帮助开发者...
5. 创建Action类,注入Service层对象,调用Service的分页方法。 6. 在Struts2配置文件中配置Action的入口点和结果转发。 7. 在Service层实现业务逻辑,调用DAO的分页查询方法。 8. 创建视图页面,展示分页数据。 ...
使用注解的方式整合,例如,在Action类中,可以使用`@Autowired`注解让Spring自动注入需要的服务。在Hibernate实体类上,可以使用`@Entity`声明为数据库表,`@Id`标识主键,`@ManyToOne`、`@OneToMany`等表示关联...
5. `@Autowired`:自动注入依赖,Spring会自动寻找类型匹配的Bean注入。 6. `@Qualifier`:配合@Autowired使用,当有多个相同类型的Bean时,指定注入哪个。 7. `@Value`:注入基本类型的值或者从Properties文件中...
本文将深入探讨Spring 3.0中依赖注入的新特性,特别是如何使用`@Repository`、`@Service`、`@Controller`和`@Component`注解来标记类为Bean,以及如何利用`<context:component-scan/>`元素自动扫描和注册这些Bean。...
在`SSHnote_Spring_2_Annotation`压缩包文件中,你可能找到了进一步的示例和详细解释,包括如何配置Spring以启用注解处理,以及如何利用注解进行更复杂的依赖管理和配置。这些资料将帮助你更好地理解Spring 4.x中...
在Service层中,我们可以使用Spring框架提供的依赖注入机制,来将Dao层的对象注入到Service层中,从而实现业务逻辑与数据访问之间的交互。 Controller层 Controller层是SSM框架中的Web层,负责将用户请求与业务...
2) 利用Struts2的struts2-spring-plugin插件,实现在Action中自动注入service对象。 3) 利用Spring的@Service、@Repository两个Annotation来实现Service类、DAO类在Spring容器中的自动注册,利用@Autowired来实现...
首先,Spring的自动扫描功能基于组件扫描(Component Scanning)和注解驱动配置(Annotation-driven Configuration)。组件扫描是指Spring容器会遍历指定的包及其子包,寻找带有特定注解的类,这些注解表明该类是一...
### Spring Annotation 入门 #### 一、Spring 注解概述 Spring 框架自2.0 版本起引入了一系列注解支持,这极大简化了配置管理,并为开发提供了更为简洁灵活的方式。通过注解,可以将业务逻辑与配置分离,减少XML...
4. **DAO层**:创建DAO接口和实现类,使用Spring的`@Repository`注解标记DAO实现类,以便Spring自动处理事务。例如: ```java public interface UserRepository { User findById(Long id); // 其他方法... } ...
使用@Autowired注入Service层的实例,调用Service方法完成业务逻辑。 6. **运行与测试**:启动服务器,通过URL访问Controller中的方法,Spring MVC会根据@RequestMapping的设置分发请求,Hibernate则负责与数据库...
Spring作为核心容器,负责管理对象及依赖注入(DI);Spring MVC处理HTTP请求和响应,提供模型-视图-控制器(MVC)架构模式;MyBatis则作为持久层框架,简化了SQL操作。 在“ssm例子一直报错userDao无法注入”的...