springIOC、AOP的一些注解(使用这些注解之前要导入spring框架的一些依赖):
    1.注入IOC容器
        @Compontent:使用注解的方式添加到ioc容器需要在配置文件中添加扫包操作<context:component-scan base-package=“需要扫的包”/>这个注解有个value属性,就相当于bean中的id;
        大多数类能使用这个注解实现装配操作,但是我们在实际开发中会有三层:controller层(action),service层,dao层,
        那么我们@Compontent也有相应的“子类”注解来让我们更好的区分这些层次:@Controller控制controller层,@Service
        控制service层,@Repository控制dao层;

2.属性值的装配
        @Value装配属性值相当于bean中的<property name="" value="要装配的值"/>

3.其他bean的引用
        ① @Autowired(自动装配):对于其他bean的引用我们需要使用自动装配,它是根据byType和byName装配的,只要满足其中
        一个条件就装配成功;它还可以和另外一个注解@Qualifier("要装配的其他bean的id值")。

② @Resource用法和@Autowired用法一致也是根据byType和byName装配的;和@Autowired的区别是不要和@Qualifier组合
        使用,可以直接在括号里指定其他bean的id:@Resource("其他bean的id")。

③ @Inject(需要去中央仓库引入JSR330的架包,导入javax.inject依赖即可):如果需要指定bean,主要组合一个注解叫
          @Named("其他bean的id"),用法和@Autowired相似;那么由此可见对其他bean的引用,最方便的还是@Resource注解。

4.集合类型的装配
        使用@Resource(name="bean中的id名")以下是在配置文件中配置的各种集合(需要用到一个util的命名空间):

     ①list集合: <util:list id="list">
<value>1</value>
<value>2</value>
</util:list> ②set集合: <util:set id="set">
<ref bean="其他bean的id"/>
<bean class="ioc.OtherBean">
<property name="name" value="zhangsan"/>
</bean>
</util:set> ③map集合: <util:map id="maps">
<entry key="123" value-ref="otherBean"/>
<entry>
<key>
<value>456</value>
</key>
<ref bean="otherBean1"/>
</entry>
</util:map>

5.初始化和销毁
        ① @PostConstruct(在对象创建完成后执行初始化方法)一般反正该init()方法上
        ② @PreDestory(在容器销毁之后执行的销毁方法)一般放在destory()方法上
    6.域
        @Scope(scopeName="prototype")加在类上使该类变成多列,singleton参数为单列。

7.Aop的一些注解由AspectJ提供,步骤如下:
        1.编写通知
        2.配置(注解方式配置AOP非常简单)
            ①.将target放入到IOC容器
            ②.将通知添加到IOC容器
            ③.指定切面 ,在通知上添加@Aspect
            ④.给方法添加通知类型
                @Before前置通知
                @AfterRetuning后置通知
                @AfterThrowing异常通知
                @Around环绕通知
            ⑤.解析Aspect的注解,解析注解有两种方式:
                (1). 在容器中添加<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"/>
                (2).在容器中添加<aop:aspectj-autoproxy/>,这个是aop的一个命名空间,显然这种方法比较简单,但是底层实现还是上面的。
        3.对于切点@Pointcut(这里就用@Before为列了):
            ① 用法一:@Before(“跟AspectJ表达式,你想添加通知扫描的包”)
            ② 对pointcut,可以在通知中单独定义一个pointcut方法,在方法添加一个注解@Pointcut,
            @Pointcut("execution(* aop.impl.*ServiceImpl.*(..))"),这个value里面是AspectJ表达式,具体用法就不介绍了
            public void pointcut(){}
            使用的时候
              @Before("pointcut()"),这里必须加上()

springIOC、AOP的一些注解的更多相关文章

  1. Spring的AOP配置文件和注解实例解析

    1.1           Spring的AOP配置文件和注解实例解析 AOP它利用一种称为"横切"的技术,将那些与核心业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减 ...

  2. AOP获取方法注解实现动态切换数据源

    AOP获取方法注解实现动态切换数据源(以下方式尚未经过测试,仅提供思路) ------ 自定义一个用于切换数据源的注解: package com.xxx.annotation; import org. ...

  3. 运用Spring Aop,一个注解实现日志记录

    运用Spring Aop,一个注解实现日志记录 1. 介绍 我们都知道Spring框架的两大特性分别是 IOC (控制反转)和 AOP (面向切面),这个是每一个Spring学习视频里面一开始都会提到 ...

  4. SpringIOC&AOP

    Spring是为简化企业级系统开发而诞生的,Spring框架为J2EE应用常见的问题提供了简单.有效的解决方案,使用Spring,你可以用简单的POJO(Plain Old Java Object)来 ...

  5. 面向切面编程AOP:基于注解的配置

    Aop编程就是面向编程的羝是切面,而切面是模块化横切关注点. -切面:横切关注点,被模块化的特殊对象. -通知:切面必须要完成的工作 -目标:被通知的对象 -代理:向目标对象应用通知之后创建的对象. ...

  6. 【Spring五】AOP之使用注解配置

    AOP使用注解配置流程: 1.当spring容器启动时候.    < context:component- scan base-package= "cn.itheima03.sprin ...

  7. Spring+AOP+Log4j 用注解的方式记录指定某个方法的日志

    一.spring aop execution表达式说明 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义 ...

  8. spring AOP 和自定义注解进行身份验证

    一个SSH的项目(springmvc+hibernate),需要提供接口给app使用.首先考虑的就是权限问题,app要遵循极简模式,部分内容无需验证,用过滤器不能解决某些无需验证的方法 所以最终选择用 ...

  9. 使用AOP实现缓存注解

    为何重造轮子 半年前写了一个注解驱动的缓存,最近提交到了github.缓存大量的被使用在应用中的多个地方,简单的使用方式就是代码先查询缓存中是否存在数据,如果不存在或者缓存过期再查询数据库,并将查询的 ...

随机推荐

  1. css3滤镜Filter使用

    Filter主要用于图片,SVG等元素上,其默认值是none,有以下10个filter-function值可选: grayscale(灰度)效果类似于PS中的去色或者黑白 blur(模糊)效果类似于P ...

  2. 现代 PHP 新特性系列(三) —— Trait 概览

    Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么:提供模块化实现.Trait ...

  3. Ajax beforeSend和complete 方法

    http://blog.csdn.net/chenjianandiyi/article/details/52274591 .ajax({ beforeSend: function(){ // Hand ...

  4. 怎么使用linux命令重启服务器

    一下的命令都可以重启Linux服务器: 1.shutdown -r now 2.reboot 3.startx

  5. Algorithms code

    一些值得回看的小算法. 最长的连续子数组 子数组数字不重复 int [] arr={1,2,3,4,7}; //输出4 int [] arr1={1,2,3,4,1,2,3,4,5,1}; //输出5 ...

  6. Springmvc 并发访问的线程安全性问题

    首先对于spring的IOC来说,对象是由Spring来帮我们管理,也就是在Spring启动的时候,在Spring容器中,由Spring给我们创建的,Spring会帮我们维护,一般都是单例的,也就是一 ...

  7. Python-Blog2-编写Web app 骨架

    撸代码之前让我们先来看几个概念: 什么是协程(Coroutine)? 假设现在有两个子程序,子程序A和子程序B: def A(): print('1') print('2') print('3') d ...

  8. gRPC实战

    gRPC是Google开源的一款非常棒的系统间通信工具,完美的communication抽象,构建在protobuf之上的RPC. 下面我们聊聊它的应用场景,grpc为分布式系统而生,可以是系统间通信 ...

  9. idea 远程调试 tomcat web应用

    最近在做的一个东西,测试环境和本地环境差距太大,本地能运行的代码,放到测试环境上到处报错,哪里哪里都连不上,所以决定把代码部署到远程服务器上调试,节省时间. 网上看了很多教程,大部分都是互相抄来抄去, ...

  10. eclipse启动报错the catalog could not be loaded please ensure that you have network access and if needed have configured your network proxy

    搜索关键词不对在网上查了一圈没找到合适的解决办法 去看报错的日志文件 然并卵.不过下面有个config.ini,想着以前能用现在不能用,肯定是配置问题,打开该文件 转载请注明出处http://www. ...