Spring 学习笔记

所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护时由外部容器负责的。这样控制权就是由应用转移到了外部容器,控制权的转移就是所谓反转。
依赖注入就是指:在运行期间,由外部容器动态地将以来对象注入到组件中。

spring 容器!  事务管理服务,jms服务,spring core核心服务,持久化服务

如果使用spring,我们就不需要手工控制事务。

使用spring 我们只需要通过声明式的事务属性配置就可以轻松的实现这两种业需求

@Transactional(propagation=Propagation.Required)
@Transactional(propagation=Propagation.RequiresNew)不管第一个事务是否执行

重量级,轻量级
开的服务多为重量级,服务少为轻量级。
核心jar
dist\Spring.jar
lib\jakarta-commons\commons-logging.jar

如果使用了面向编程(aop),还需要下列jar文件
lib/aspectj/aspectjweaver.jar和aspectjrt.jar
lib/cglib/cglib-nodep-2.1_3.jar
如果使用注解需要
lib\j2ee\common-annotations.jar

一般创建
<bean id="personService" name="为了起名的!可以用特殊字符" class="com.tjpu.helen.PersonServiceBean"></bean>   
ApplicationContext app= new ClassPathXmlApplicationContext("beans.xml");
        PersonService personService=(PersonService)app.getBean("personService1");
        personService.save();

bean工厂创建
<bean id="personService2" class="com.tjpu.helen.PersonServiceBeanFactory" factory-method="greateBean"></bean>
ApplicationContext app= new ClassPathXmlApplicationContext("beans.xml");
        PersonService personService=(PersonService)app.getBean("personService2");
        personService.save();

public class PersonServiceBeanFactory {

    public static PersonServiceBean greateBean(){
        return new PersonServiceBean();
    }
}

bean的作用域。
bean默认是一个单实例。java项目中new实例 scope=prototype
实例化时间:
    默认容器启动时候实例化! 单例。
     scope=prototype是在getBean时候实例化。
lazy-init延时初始化。
在beans里面:default-lazy-init="true"所有bean延时初始化。建议不要用有些错误信息能在容器启动时候检查出来! 不要等到调用bean时候才发现。

init-method="init"方法。指定初始化方法。
abstractApplicationContext 这个抽象类能正常关闭容器。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值