Spring入门(理解spring)

1.Spring入门

1-1.Spring背景

作用:
Spring框架的目的就是为了简化JavaEE- [JavaSE,JavEE- [Enterprise Edition],JavaME]的企业级应用开发。

重量级框架 - EJB  --[与底层硬件,系统,关联性很大]
轻量级框架 - Spring [不依赖于底层系统平台,可移植性强]
 
Rod Johnson -- Spring Framework创始人
  
  
2004年3月24日,发布了1.0正式版  


Spring框架发展历程:

  • 第一个阶段: XML配置阶段 Sprint 1.x

  • 第二个阶段: 注解配置阶段 Spring 2.x

  • 第三个阶段: Java配置 Spring 3.x以上

    基于SSM项目 – 使用XML与注解配置结合:

    • 基本配置(数据源,mybatis,事务等)用XML

    • 业务配置(@Service,@Controller…)用注解

    针对Spring4.x以上和Spring Boot都推荐使用Java配置

1-2.Spring的优点

Spring定义

   是分层的 Java SE/EE 应用 full-stack 轻量级开源框架(不依赖平台,代码量小)
以 IoC(Inverse Of Control:控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核

Spring的内部针对于分层应用中的表示层–SpringMVC[模块]、数据访问层–SpringJDBC[模块]、AOP[实现事务管理]

Spring- Struts-Hibernate [SSH]

Spring-SpringMVC-Mybatis [SSM]

Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说Spring是企业应用开发的“一站式”(one-stopshop)选择,并贯穿表现层、业务层及持久层
-表现层:SpringMVC
—业务层:AOP事务管理
—持久层:springjdbc

Spring优点

  • 方便解耦,简化开发
  • AOP编程的支持
  • 声明式事务的支持 --业务层 xml
  • 方便程序的测试
  • 方便集成各种优秀的框架
  • Java 源码是经典学习范例 – Spring源码[开源]

1-3.Spring体系结构

1-3.Spring体系结构

image-20210427144343799

1-4.Spring工厂类结构

image-20210427172716819

Spring容器顶层接口与三个实现类

BeanFactory接口

  • ApplicationContext接口
    • ClassPathXMLApplicationContext 实现类 – 基于XML配置文件生成的工厂实现类
      • -FileSystemXmlApplicationContext 实现类 – 基于XML配置文件生成的工厂实现类
      • -AnnotationConfigApplicationContext --基于注解配置的工厂实现类

1-7.BeanFactory与ApplicationContext区别 [理解]

  • BeanFactory是Spring容器的顶层接口, ApplicationContext继承于它

  • BeanFactory与ApplicationContext 工厂 创建对象的时间点不一样

    • ApplicationContext:只要一读取配置文件,默认情况下就会创建对象,并保存Spring容器中
    • BeanFactory:什么时候使用什么时候创建对象

    日志logback依赖添加进来,可以看出区别:

public class UserServiceTest {
   @Test
    public void testSaveUser(){
        User user = new User();
        //UserService userService= new UserServiceImpl();
       //根据Spring核心配置文件,创建Spring容器对象ac
       //ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
       BeanFactory ac = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
       System.out.println("=====================================================================");
       UserService userService = (UserService) ac.getBean("userService");
       UserService userService2 = (UserService) ac.getBean("userService");
       System.out.println(userService2==userService);
        userService.saveUser(user);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值