`
splinter_2
  • 浏览: 58945 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

dao对象不能使用注解@Repository实例化的情形之一

阅读更多

项目中定义一个dao对象,继承了 JdbcDaoSupport,在dao中使用getJdbcTemplate操作数据库,则在dao上添加@Repository注解,实例化失败

 

原因分析:

JdbcDaoSupport的父类DaoSupport继承了InitializingBean,在系统启动实例化dao时,会首先实例化JdbcDaoSupport,实例化后,执行立即检查dao配置,发现dataSource为null,则报错,dao实例化失败。

 

因为使用JdbcDaoSupport 的getJdbcTemplate得到的jdbcTemplate需要传入一个DataSource对象,因此必须重写JdbcDaoSupport的getDataSource()方法,把@Resource标记的dataSource传入进去,但是JdbcDaoSupport的此方法设置为final,因此不能传入dataSource。

 

如果dao继承JdbcTemplate,则可以传入dataSource

 

解决办法:

在spring.xml文件中配置此dao

 

<bean id="xxxDao" class="XxxDao">
  <property name="dataSource" ref="dataSource"/>
 </bean>

 

另外,在spring.xml配置一个JdbcTemplate对象,然后把JdbcTemplate对象注入给JdbcDaoSupport,这样就可以使用@Repository,但是我得到了JdbcTemplate对象,还继承JdbcDaoSupport做什么?

分享到:
评论

相关推荐

    解释@Component @Controller @Service @Repository

    在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器之一。在Spring中,注解扮演着至关重要的角色,特别是对于组件扫描和依赖注入。本篇文章将深入探讨...

    spring boot服务器dao层实例化.rar_dao实例化_idea 实例ID_spring boot_spring b

    5. 实例化DAO层:当应用启动时,Spring Boot会自动扫描到`@Repository`注解的类并实例化它们。在业务层或者控制器层,我们可以直接通过构造函数或`@Autowired`注解来获取DAO实例,然后调用其方法进行数据操作。 ```...

    spring注解笔记

    通常情况下,我们不推荐直接使用@Component,而是推荐使用@Controller、@Service和@Repository,因为它们提供了更具体的语义化用途。 #### 3. @Controller注解 @Controller注解用于标注表现层的类,也就是Web层的...

    springmvc注解简单实例

    在Spring MVC中,我们通常使用`@Repository`注解来标记数据访问对象(DAO)。这个注解使得Spring能够自动处理DAO类的依赖注入,同时也提供了事务管理的支持。例如,如果你有一个名为`UserDao`的类,你可以这样定义它...

    spring注解实例

    在IT行业中,Spring框架是Java开发中的核心工具之一,它为构建企业级应用程序提供了全面的解决方案。本资源包“spring注解实例”聚焦于Spring框架的注解编程模型,特别是与SSH2(Struts、Spring、Hibernate)集成的...

    SSH环境 注解方式 包含jar 简单实例 直接运行

    6. **DAO层**:创建DAO接口和实现类,使用`@Repository`注解标记实现类,编写数据库操作方法。 7. **测试与运行**:编写JUnit测试用例验证功能,部署项目到服务器,通过浏览器访问Action,观察控制台输出和数据库...

    Spring中常用注解

    当你在类上使用`@Component`时,Spring会自动扫描并管理这个类的生命周期,包括实例化、初始化、依赖注入等。 2. `@Service` 和 `@Repository`: 这两个注解是`@Component`的特殊形式,通常用于更具体的层面上。`@...

    Spring Boot技术知识点:如何深入理解@Component注解

    在Spring Boot框架中,`@Component`注解是核心组件之一,它扮演着定义bean角色的关键角色。这个注解属于Spring框架的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)机制的核心部分。...

    JPA注解的解释和说明.pdf

    它通常用于父类repository,可以防止Spring实例化这些无用的父类接口。 @Column:此注解用于指定实体类属性和数据库表列之间的映射关系。如果属性名和数据库列名相同,可以省略此注解。 @Id:此注解用于声明一个...

    ssh2注解实例详解

    在这个全注解实例中,我们将深入探讨如何在不使用XML配置的情况下,利用注解来配置这三个框架。下面将详细阐述每个框架的注解用法及其在实际开发中的应用。 **Struts2**: Struts2是基于MVC设计模式的开源框架,...

    zk+spring+hibernate(全部用注解)

    1. **ZK配置**:在代码中,可能有一个配置类,使用`@Configuration`注解,其中包含`@Bean`注解的方法,用于创建并返回一个`ZooKeeper`实例。这可能还涉及`CuratorFramework`等库的使用,以便于与ZK进行交互。 2. **...

    Spring框架JavaConfig注解配置方式实例

    3. `@Bean`:在方法上使用此注解,表示该方法的返回值将被Spring容器作为bean实例化并管理。这样,我们可以通过Java代码来创建bean实例,而不是XML配置文件。 4. `@Autowired`:自动装配bean,Spring会自动寻找合适...

    Spring@注解.md

    - 在Spring框架中,通过使用不同的注解,可以方便地管理Bean的实例化、依赖注入以及配置文件的绑定等功能。 - `@Bean`、`@Configuration`、`@EnableConfigurationProperties`等注解的使用极大地简化了开发流程,提高...

    Spring Data JPA文档.zip

    Spring Data JPA是Java开发中的一个强大框架,它简化了持久化层的开发,通过将ORM(对象关系映射)与Spring框架相结合,为开发者提供了简单、高效的数据库操作方式。这个压缩包“Spring Data JPA文档.zip”包含了...

    Spring @讲义.txt

    - 当一个类被标记为 `@Service` 时,Spring 会自动将其实例化并管理它的生命周期。 - **示例**: ```java @Service public class UserServiceImpl implements UserService { // ... } ``` #### 五、@...

    注解小例子

    5. **其他注解**:Spring还有许多其他有用的注解,如`@PostConstruct`和`@PreDestroy`,分别标记在对象初始化后和销毁前执行的方法。`@Value`用于注入基本类型或SpEL表达式的值。`@RequestMapping`、`@GetMapping`、...

    java spring 框架及注解 总结

    IoC使得应用程序的组件之间不再直接依赖,而是由容器负责组件的实例化、装配和管理,降低了组件间的耦合度。在Spring中,我们通常通过XML配置或注解的方式来定义Bean及其依赖关系。 注解是Spring框架引入的重要特性...

    spring注解的使用

    本文将深入探讨Spring注解的使用,包括但不限于@Component、@Service、@Repository、@Controller、@Autowired等核心注解,以及它们如何帮助实现依赖注入。 1. **@Component**: 这是Spring中最基础的组件注解,可以...

    spring中Resource和Component注解

    当这个注解添加到类上时,Spring容器会自动发现并管理这个类的实例,进行实例化、初始化和装配。`@Component`的派生注解如`@Service`、`@Repository`和`@Controller`,则是为不同类型的业务层对象提供了更明确的语义...

Global site tag (gtag.js) - Google Analytics