spring实战解读--(spring总视)

如何降低Java开发复杂性,spring采取下面四种方法:

1.基于pojo的轻量级和最小入侵性编程; 

  • POJO(一个简单的Java类对象),spring非侵入式编程模型意味着这个类在非spring应用或者是spring应用中都可以使用它。
  • spring不会强迫你使用spring特有的接口(使框架和代码绑定),最坏情况下就是使用了spring注解,但是任然是pojo。

2.通过依赖注入和面向切面编程实现松耦合;

  • 依赖注入的好处:可以解耦合,对象的依赖关系由系统负责协调各个对象的第三方组件完成的,不需要该对象自行创建或者是管理它们的依赖关系。
  • 虽然是要解耦合,但是对象与对象之间还是要交互的,所以需要实现松耦合。

3.基于切面和惯例进行声明式编程;

4.通过切面和模板减少板式代码;

 

DI:

创建应用组件之间的协作行为一般称为装配,装配的方法一般有三种:

  1. 基于xml方法的装配
  2. 基于Java配置
  3. 自动装配

https://blog.csdn.net/HNUST_LIZEMING/article/details/89635935

https://blog.csdn.net/HNUST_LIZEMING/article/details/89636221

spring通过应用上下文装载bean的定义并把他们装载起来,spring应用上下文全权负责对象的创建和组装,spring自带实现了多种应用上下文的实现,它们之间的区别是解决哪一种配置加载。(也可以通过spring应用上下文获取IOC容器中的单例对象)

 

面向切面编程(AOP)允许你将遍布应用各处的功能分离出来形成可重用的组件(一般是系统公用模块)

系统由许多不同组件组成,每一个组件各负责一块特定的功能,除了自身核心的功能以外还要实现额外职责,例如日志,事务管理,安全等系统服务。

缺点:

1.如果写入了组件之中,有大量的代码冗余,更改系统逻辑代码时候需要一个个更改。

2.那些与逻辑代码无关

所以将系统服务模块抽象成横切关注点。使核心业务与系统功能分离。

 

如果是基于xml配置的话:还是要将其类装配成springbean(可以注入依赖),然后再声明切面既可。在spring应用上下文中,变为了切面。

 

使用模板消除样板式代码

 

Bean容器(IOC容器)

你的对象生存在容器之中,spring容器主要是负责创建对象,装配他们,配置他们并且管理它们整个生命周期,从生存到死亡。容器是spring框架的核心,spring容器使用DI管理构成的组件,它会创建相互协作的组件之间的关联。

spring容器的实现只要是由两种

  1. bean工厂(最简单的容器)
  2. 应用上下文(由beanfactory实现的)

 ① AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载上下文定义,适用于java注解的方式;

② ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载上下文定义,适用于xml配置的方式;

③ FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义,也就是说系统盘符中加载xml配置文件;

④ AnnotationConfigWebApplicationContext:专门为web应用准备的,适用于注解方式;

⑤ XmlWebApplicationContext:从web应用下的一个或多个xml配置文件加载上下文定义,适用于xml配置方式。

 

我们只需要通过应用上下文将配置加载到IOC容器之中,让spring替我们管理对象,待我们使用使用就从容器中获取bean对象既可

public class Test {
    public static void main(String[] args) {
        //加载项目中的spring配置文件到容器
//        ApplicationContext context = new ClassPathXmlApplicationContext("resouces/applicationContext.xml");
        //加载系统盘中的配置文件到容器
        ApplicationContext context = new FileSystemXmlApplicationContext("E:/Spring/applicationContext.xml");
        //从容器中获取对象实例
        Man man = context.getBean(Man.class);
        man.driveCar();
    }
}

public class Test {
    public static void main(String[] args) {
        //从java注解的配置中加载配置到容器
        ApplicationContext context = new AnnotationConfigApplicationContext(ManConfig.class);
        //从容器中获取对象实例
        Man man = context.getBean(Man.class);
        man.driveCar();
    }
}

可以通过上下文context.getbean获取对象。

springaop:https://blog.csdn.net/HNUST_LIZEMING/article/details/89765192

https://blog.csdn.net/HNUST_LIZEMING/article/details/89787341

springmvc与前端数据交互实例

https://blog.csdn.net/HNUST_LIZEMING/article/details/89737678

https://blog.csdn.net/HNUST_LIZEMING/article/details/89681414

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值