spring的理解

spring就是一个bean的容器
所谓bean,就是需要get,set的一些java实体,例如User
通过spring把bean加载到容器中,当需要使用bean时候,不需要去new 一个对象,直接先在spring-cfg中去配置他的bean,然后通过依赖注入的方式去调用。

在配置文件spring-cfg中需要有一些约束条件,让的配置更加规范,就需要使用到spring-beans这个jar包

每个bean,都往spring-cfg,那么配置文件又大又臃肿,所以,spring通过注解注入的方式就不用去配置文件中配置bean信息,把注解直接写在bean上就可以了,常用的注解有@Service Controller Component
使用了这些注解的bean必须还要被扫描到,才能自动装载到spring容器中,那么spring-cfg中就需要配置一个专门包扫描的东西,它受约束于spring-context 这个东西就是<context:component-scan>

以上都是讲怎么把bean加载到spring中的,但要是需要使用某个bean还去new还去通过反射getBean那就太low了,直接使用注解@Autowired
有了spring-beansspring-context@Autowired 就可以先把bean加载到spring容器中,当使用的时候不用new对象,直接@Autowired 即可。

疑问,为什么@Autowired 总是用在接口上,?

AOP
当需要使用数据库时候,正常的顺序是,打开事务,打开连接,sql语句,执行查询插入删除,关闭连接,关闭事务等等。

有了切面编程,把数据库操作,拦截下来,把事务什么的都干好,我们只需要专心去sql语句,执行查询插入删除。
他可以拦截某些方法执行前后,做一些操作。可以使用注解,也可以使用XML

使用注解的方式就是spring-cfg再加一个spring-aop的约束,标签是<aop:aspectj-autoproxy>
一个切面类首先需要有@Aspect 来声明这是一个切面,还需要加上@Component 来声明这是一个组件,加载到spring容器中。这切面类中,使用的注解常有@Pointcut @Before @After @AfterReturning @Around

使用XML方法:

aop的原理有两种实现方式,第一种,JDK提供的 Proxy (代理)和 InvocationHandler (调用处理)。使用这种方式,必须要实现接口,这种方式,优势是,使用反射创建对象,创建效率高。

aop的原理有两种实现方式,第二种,cglib基于子类基于继承,没有接口的时候,只能用这个,优势是执行效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值