`

spring 注入 切面

 
阅读更多
  • Java 声明接口定义:

public interface ShopOperatorSearchDao {  

    @DAOAction (action = DAOActionType.QUERY, method = "selectParentCategory")
    public List<Integer> selectParentCategory(@DAOParam ("shopID") int shopID);

}

    <bean id="shopOperatorSearchDAO" parent="parentDao ">
        <property name="proxyInterfaces" value="com.dianping.shop.operator.dao.ShopOperatorSearchDao "></property>
        <property name="target">
            <bean parent="Main.daoRealizeTarget ">
                <constructor-arg value="ShopSearch "></constructor-arg>
            </bean>
        </property>
    </bean>

    <bean id="parentDao " class="org.springframework.aop.framework.ProxyFactoryBean " abstract="true">
        <property name="interceptorNames">
            <list>
                <value>daoAutoRealizerAdvisor </value>
            </list>
        </property>
    </bean>

    <bean id="Main.daoRealizeTarget " class="com.dianping.avatar.dao.ibatis.IBatisGenericDaoImpl " abstract="true">
        <property name="sqlMapClient" ref="Main.sqlMapClient" />
    </bean>

    <bean id="Main.sqlMapClient" class="com.dianping.avatar.dao.ibatis.spring.LimitSqlMapClientFactoryBean">
        <property name="dataSource" ref="Main.dataSource" />
        <property name="configLocation" value="classpath:/config/sqlmap/main/sqlmap-config.xml" />
        <property name="sqlConvert" ref="mysqlConverter" />
    </bean>

    <!-- The introduce interceptor for all Dao  -->
    <bean id="daoAutoRealizer" class="com.dianping.avatar.dao.DAOAutoRealizer " />

    <!-- The advisor for inject interceptor -->
    <bean id="daoAutoRealizerAdvisor" class="org.springframework.aop.aspectj.AspectJExpressionPointcutAdvisor">
        <property name="advice" ref="daoAutoRealizer" />
        <property name="expression" value="execution(* com.dianping..dao..*.*(..)) and !execution(* com.dianping.avatar..dao..*.*(..))" />
    </bean>

 

 

  • spring的使用:注入与new

spring:最大特点就是注入。

在有spring存在的项目中,spring 的注入要统一使用,类的一步一步引用,要么为全部注入,要么都不注入。否则会出错。
比如:一个类A没有使用注入,只是用new创建了一个实例化的类B的对象。则在B类中不能使用注入。否则会出错。因为被new实例化的类和spring实例化的类是不同的,在被new实例化的对象中被注入的内容为空。

分享到:
评论

相关推荐

    第十四章 Spring4 切面事物与事物通知与传播行为

    在IT领域,Spring框架是Java开发中的核心组件之一,它为开发者提供了许多强大的功能,包括依赖注入、面向切面编程(AOP)以及事务管理。本章将详细探讨Spring4中的切面事务处理、事物通知以及传播行为。 一、切面...

    struts2+spring+hibernate分页,事务,自定义切面

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(模型-视图-控制器)架构的实现,Spring提供了强大的依赖注入和面向切面编程功能,而Hibernate则是一个优秀的...

    Spring三种注入方式(三)

    接口注入在Spring中并不常用,通常出现在使用AOP(面向切面编程)或者自定义的依赖注入场景。这种方式是通过实现特定的接口,由Spring在运行时动态调用接口方法注入依赖。Spring没有内置的接口注入机制,但可以通过...

    spring注入原理

    Spring框架是Java开发中不可或缺的一部分,它通过提供依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)等核心功能,极大地简化了企业级应用的开发工作。...

    spring注入文件写法

    综上所述,Spring注入文件的写法涉及了数据源、Hibernate集成、事务管理和DAO的声明及配置。通过这种方式,Spring能够提供一个灵活且强大的基础设施,支持数据库操作和事务管理,同时保持代码的整洁和模块化。

    JAVA简单AOP切面编程;依赖注入;代码配置Bean源码

    AOP在Spring框架中得到了广泛的应用,允许开发者定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志、事务管理或安全控制。 1. **AOP概念** - **切面(Aspect)**:是AOP的核心,它封装了横切关注点,比如...

    spring依赖注入底层详解

    Spring依赖注入的底层实现主要依赖于反射和AOP(面向切面编程)技术。 1. 反射:Spring使用Java的反射API动态地查找和调用构造函数、setter方法等,实现对象的创建和属性设置。当容器遇到带有@Autowired注解的字段...

    spring4 AOP 面向切面编程@Aspect

    在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点从业务逻辑中分离出来,比如日志记录、事务管理、权限检查等。`@Aspect`是Spring AOP的核心注解,用于定义一个切面。下面我们将详细...

    如何实现Spring依赖注入 AOP.rar

    Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect Oriented Programming,简称AOP)。这两个特性极大地简化了Java应用程序的开发和...

    JavaSpring的依赖包(包含切面AspectJ)

    Spring 提供了丰富的功能,包括但不限于依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问和集成、Web 应用开发等。在本压缩包中,包含了与Spring框架和AspectJ相关的关键组件。 首先,Spring 框架是Java...

    深度理解,自己实现java动态代理、自动注入、切面编程(类似于Spring IOC、AOP)

    Java动态代理、自动注入和切面编程是Java开发中至关重要的概念,特别是在Spring框架中,它们为应用程序提供了灵活的控制和解耦。本篇文章将深入探讨这些知识点,并通过实例代码来帮助你理解如何自己实现类似Spring的...

    spring依赖注入的实现原理

    2. **代理**:Spring使用动态代理(JDK Proxy或CGLIB)来增强bean,使得在调用方法前能够进行额外的操作,如AOP(面向切面编程)的拦截。 四、源码分析 1. **BeanDefinition**:这是Spring中描述bean定义的接口,...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    依赖注入的另一个关键点是AOP(面向切面编程)。在Spring中,我们可以使用AOP实现如日志记录、事务管理等横切关注点。当使用`@Autowired`注入带有AOP代理的bean时,Spring会自动处理这些代理,确保依赖注入的正确性...

    spring 控制反转和依赖注入.docx

    3. 面向切面编程(AOP):面向切面编程是 Spring 框架的另一个核心概念,它可以将公共业务集中处理,实现代码的复用和灵活性。 Spring 框架的结构由 7 个核心模块组成: 1. Spring Core:主要模块(组件),...

    Spring的依赖注入,与前置通知的实例

    例如,我们可以为服务层创建一个日志切面,然后通过依赖注入将这个切面引入到需要的日志记录的服务中。这样,无需修改服务类的代码,就能实现统一的日志记录功能。 总结来说,Spring的依赖注入提高了代码的可测试性...

    SSI框架搭建实例教程(struts spring ibatis整合 附切面事物处理)

    【SSI框架搭建实例教程(struts spring ibatis整合 附切面事物处理)】 在软件开发中,集成多种框架可以提高应用程序的灵活性和可维护性。SSI框架是指Struts、Spring和iBatis的集成,这三种框架分别负责MVC模式中的...

    基于IDEA的SSH项目之四:简单的切面应用---程序包

    1. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)、面向切面编程(AOP)、事务管理等多种功能。在IDEA中,我们可以通过创建Maven或Gradle项目来引入Spring框架的依赖。 2. **切面...

    Spring框架+Spring工作原理+AOP面向切面编程+JDK代理+Cglib代理

    1. **Spring Core**:提供了Spring框架的基础,包括依赖注入(DI)和面向切面编程(AOP)的基础支持。它是所有其他模块的基础。 2. **Spring AOP**:支持面向切面编程,允许开发者定义方法拦截器和切入点,从而分离...

    Spring-注入依赖,AOP,自动注入Bean

    在Spring框架中,依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)是两大核心特性,同时自动注入Bean也是Spring管理对象的一种常见方式。让我们深入探讨这些概念。 首先,...

    使用使用切面的方式记录日志springMvc + hibernate

    在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及与各种技术的集成,如Spring MVC和Hibernate。本项目"使用切面的方式记录日志springMvc + hibernate...

Global site tag (gtag.js) - Google Analytics