`
pangxin12345
  • 浏览: 186225 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 学习笔记

    博客分类:
  • java
阅读更多

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

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 这个抽象类能正常关闭容器。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics