Spring注解整理

//面向接口编程
//接口中默认所有方法为public abstract不用写
//接口中方法不能有方法体
//方法hello:输入一个string类型参数 返回一个String类型

//IOC:控制反转,控制权的转移  获得依赖对象的过程被反转了

//DI:依赖注入 目的:创建对象并且组装对象之间的关系.


//example:
找ioc容器(找房屋中介)  容器返回对象(中介介绍房子)  使用对象(用户租房,入住)

//创建基于注解的springIOC容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AopBeanConfig.class);
//创建基于配置文件的springIOC容器
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spring-beans.xml");


//spring注入
在启动spring容器加载bean配置的时候,完成对变量的赋值行为
常用的两种注入方式:设值注入,构造注入


//Bean
//Bean的配置项 作用域 声明周期 自动装配 Resources

//配置项:Id(唯一标识符) Class(类) Scope(作用域) Constructor arguments
//properties Autowiring mode lazy-initialization mode

//作用域
singleton:单例,指一个bean容器中只存在一份
prototype:每次请求创建新的实例,destory方式不生效
request:每次http请求创建一个实例且仅在当前request内有效
session:当前session有效
global session:基于portlet的web中有效

//Bean的声明周期
定义(xml里配置),初始化,使用,销毁
初始化 销毁 可以单个bean配置 也可以一起配置

//spring装配之Aware接口
ApplicationContextAware
BeanNameAware

//Bean的自动装配(Autowiring)
1.No:不做任何操作(默认)
2.byname:根据属性名自动装配.
3.byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配
4.Constructor:应用于构造器参数.如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常

//Resources 针对资源文件的统一接口


//注解 Bean的定义及作用域的注解实现
Classpath扫描与组件管理
从spring3.0k开始 使用java(注解)而不是xml定义bean
@Component通用注解
@Respository
@Service
@Controller
spring可以自动检测类并且注册Bean到ApplicationContext中

//类的自动检测及Bean的注册
<context:component-scan base-package="某个包的所有类"/>

//使用过滤器进行自定义扫描
默认情况下,类被自动发现并中蹙额bean的条件是使用@Component通用注解
                          @Respository
                          @Service
                          @Controller
可以通过过滤器


//定义Bean
扫描过程中组件被自动检测,Bean名称为类名第一个字母小写作为bean的id
也可以自己设置名字 @Component("newname")


//作用域注解
@Scope("prototype")
@Scope("singleton")
也可以自定义scope策略


//@Required注解
@Required注解检查 但他只检查属性是否已经设置而不会测试属性是否非空
注意@Required只能设置在setter方法上

    用在set方法上,一旦用了这个注解,那么容器在初始化bean的时候必须要进行set,也就是说必须对这个值进行依赖注入。


适用于bean属性的setter方法
这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过再bean定义或通过自动装配一个明确的属性值

//@Autowired注解
1.setter 2.构造或成员变量

@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
注解解析依赖性接口
通过@Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的 <property name="属性名" value=" 属性值"/>

//@Autowired  数组 Map注解

//@Qualifier
缩小范围,指定唯一性

集合或map类型的bean无法通过autowired 可以用resource
@resource适用于成员变量 只有一个参数的setter


//基于java的容器注解 @Bean
@Bean标识一个springIOC容器管理的新对象的方法 类似xml配置文件中的<bean/>
在spring中可以用@Component来注解类 在类中用@Bean注解任何方法
通常使用@Configuration注解类
@Bean(name="xxx")


//AOP 面向切面编程
日志记录 性能统计 安全控制 事务处理 异常处理

//AOP实现方式
1.预编译AspectJ
2.运行期动态代理SpringAOP

//aop概念
1.Aspect切面  类作为切面
2.joinpoint 连接点
3.Advice 通知 额外执行的切面的动作
4.pointcut 切入点 匹配连接点的断言 方法前
5.Introduction引入 不修改类代码前提的情况下为类增加新方法和属性
6.Target Object 目标对象 被一个或者多个切面所通知的对象
7.aop代理
8.织入weaving

//Advice类型
前置通知 返回后通知 抛出异常通知 后通知 环绕通知

//Spring AOP api


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值