spring笔记整理大全(一)

1.spring起源:


    早期使用java开发企业应用(企业应用系统,比如:人力资源管理系统、OA办公自动化系统、财务系统 ,所有企业应用的系统总称为ERP)使用EJB(Enterprise java Bean)开发,是sun提供的规范,比如:把javabean分为:Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
EJB特点依赖于应用服务器(比如:weblogic、websphere,类似 于tomcat),在开发EJb程序时过程比较繁琐。
    
    Spring的出现是为了取代EJB的臃肿、低效、脱离现实缺点。Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

2.参考资料

spring笔记整理大全(一)_第1张图片spring笔记整理大全(一)_第2张图片

3.spring定义(什么是spring)(官网: http://spring.io/ )


    Spring是分层的JavaSE/EE应用一站式轻量级开源框架。以Ioc(Inverse of control)控制反转和Aop(Aspect Oriented Programming)面向切面编程为核心
    分层:
        web层
            web层:spring MVC框架(类似 struts2,是一个mvc框架),提供和其它web层整合方案;
        业务层
            业务层:声明式事务管理方式、任务调度;
        持久层
            持久层:jdbc模版开发工具包、和其它持久层hibernate框架整合方案;
            上边各层以IOC和AOP作为基础。
    一站式:
        spring提供各层的解决方案。
    轻量级:
        相对于EJB来说,好用,简单、方便,spring不依赖应用服务器(weblogic)。
    开源框架:
        纯java开源框架;

        整合众多开源框架;
        和Struts2 表现层框架整合;
        和Hibernate 持久层框架整合;
        和Ibatis、Mybatis持久层框架整合 ;

        现在企业 90% 以上,都在使用Spring  !!!!!!!

4.Spring好处


    1.方便解耦,简化开发:
    Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
    2.AOP编程的支持:
    Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
    3.声明式事务的支持:
    只需要通过配置就可以完成对事务的管理,而无需手动编程
    4.方便程序的测试:
    Spring对Junit4支持,可以通过注解方便的测试Spring程序
    5.方便集成各种优秀框架:
    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
    6.降低JavaEE API的使用难度:
    Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

5.spring装配Bean/实例化Bean的方式

    1.applicationContext.xml方式:

       在xml当中配置一个bean,然后写一个入口测试一下

 

spring笔记整理大全(一)_第3张图片

    2.注解方式:

       用到的注解有:@Component,@Repository,@Service,@Controller

       然后在配置文件里添加注解扫描:

    3.javaBean的方式:

       声明一个java类,类上加@Configuration,如果是springboot项目,类上加@SpringBootConfiguration,

方法上加@Bean这个注解:

spring笔记整理大全(一)_第4张图片

6.FactoryBean和BeanFactory的区别


    FactoryBean,是一个特殊Bean,可以生产另一个bean。
    
    BeanFactory,是一个工厂,可以生产任意bean。

7.IOC、DI


    不使用IOC对象之间调用,存在耦合问题;
    如果使用IOC思想,将iOC当成一个容器,对象要调用另一个对象时,通过iOC容器来调用,
    引用iOC,iOC是Inversion of Control的缩写,翻译成“控制反转”;
    IOC定义:
        将原来程序中自己创建实现类对象的控制权反转到iOC容器中,程序只需要从iOC容器获取创建好的对象;
        iOC容器相当于一个工厂;
    DI:
        所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

8.IOC和DI的区别


    iOC和 DI 描述的是同一件事 ;
    iOC强调 将对象的创建权,被反转到IoC 容器;
    DI 强调 iOC容器将对象的依赖关系,动态注入到对象之中 ,DI是控制反转具体的实现过程。
    
    依赖注入关系:

    spring笔记整理大全(一)_第5张图片

9.IOC容器的作用


    1、将bean配置在applicationContext.xml中,IOC容器在构建时自动创建bean实例(相当于new 对象)
    2、将bean所依赖的bean配置在applicationContext.xml中,IOC容器自动将bean所依赖的对象注入进去。

10.ClassPathXmlApplicationContext的三种路径方式


    
    两个xml传入另一个xml中:import

11.bean的命名方式


    1.id
        
    2.name
        1)name引号里的值不能重复,


       2) name可以定义多个用逗号隔开,


       3)获取任意name即可获取bean
        
    3.匿名
        没有名称,自定义的获取需要的全限定名
        


   12.bean的作用域

spring笔记整理大全(一)_第6张图片

spring笔记整理大全(一)_第7张图片


    1.singleton
        单例 默认使用单例,不存数据共享用单例,单例就创建一个实例 ;
        
    2.prototype
        多例 存在数据共享用多例,多例每次都会创建一个实例;
         

spring笔记整理大全(二)链接:

https://blog.csdn.net/qq_43154385/article/details/85161945

你可能感兴趣的:(spring)