spring 是一个 轻量级的依赖注入(DI)和面向切面的容器框架。极大的降低了系统开发的耦合性。
spring的目标是提供一个一站式的轻量级应用开发平台,包含了多个层级,包括web mvc框架,数据持久层,事务处理,和消息中间件等。
1.容器核心
容器是spring框架的基础,负责bean 的创建,管理,和获取的工作,Beans和Core模块实现了IOC和DI等核心功能。
还有context模块和SpEL模块。
2. 面向切面编程(AOP)
spring'提供了对面向切面编程的支持,将权限管理等安全和事务管理,日志管理等从应用中解耦出来。AspectJ 是一个面向切面编程的框架
3.数据,访问集成 包括了五个模块
JDBC 模块,实现了对jdbc的抽象,简化了jdbc对数据库连接和操作的代码
ORM 模块 ,对象关系映射,对多个ORM框架提供了统一的数据操作方式。
OXM模块,提供了对对象 xml 映射的支持
JMS 提供了对消息功能的支持,可以生产和消费信息。
事务管理 提供了编程式和声明式事务管理,支持所有的jdbc 和orm框架。
spring开发步骤
0.导入坐标,在类路径下(resources)创建applicationContext.xml配置文件
1.创建应用上下文,调用getBean方法参数是id标识
2.spring框架从spring配置文件中找到对应id标识,找出Bean的全限定名
3.通过反射返回一个bean对象
Bean标签:
用于配置对象交由spring容器创建。默认情况下调用的是bean的无参构造函数
bean 实例化的三种方式
1.构造器实例化 使用默认无参构造方法创建对象
2.工厂静态方法实例化
3.工厂非静态方法实例化
三种实例化方式的区别
构造器实例化:通过无参构造的方法实例化Bean,其实质是将Bean对应的类交给Spring自带的工厂(BeanFactory)管理,由Spring自带的工厂模式帮我们创建和维护这个类
静态工厂方式实例化:通过静态工厂创建并返回Bean。其实质是将Bean对应的类交给我们自己的静态工厂管理。Spring只是帮我们调用了静态工厂创建实例的方法。运用:很多时候我们在使用第三方jar包提供给我们的类时,由于这个类没有构造方法,是通过第三方包提供的静态工厂创建的,如果我们想把第三方jar包里面的这个类交由Spring来管理的话,就可以使用Spring提供的静态工厂创建实例的配置。
实例工厂方式实例化:通过实例工厂创建并返回Bean,其实质就是把创建实例的工厂类和调用工厂类的方法创建实例的方法的过程也交由Spring管理,创建实例的这个过程也是由我们自己配置的实例工厂内部实现的。运用:如Spring整合Hibernate就是通过这种方式实现的。但对于没有与Spring整合过的工厂类,我们一般都是自己用代码来管理的
————————————————
版权声明:本文为CSDN博主「APSUADWF」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_15585305/article/details/116560479
bean 的依赖注入概念 dependency injection
是spring ioc 的具体体现‘
业务层 一定会调用到持久层的方法 一定会出现依赖的情况· 把两者的依赖关系交给spring管理
依赖注入的方式
applicationcontext 的实现类
classpathxmlapplicationcontext
annotationconfigapplicationcontext
Spring配置数据源