Spring Framework
Spring使用的目的:
目标:充分解耦
使用IoC容器管理bean(IoC)
在IoC容器内将有依赖关系的bean进行关系绑定(DI)
最终效果:
使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
Data Access:数据访问
Data Integration:数据集成
Web:Web开发
AOP:面向切面编程
Aspects:AOP思想实现
Core Container:核心容器
Test:单元测试与集成测试
IoC(Inversion of Control)控制反转
对象的创建控制权由程序转移到外部,这种思想称为控制反转
Spring技术对IoC思想进行了实现
Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”(架构中的core,context)
IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean
DI(Dependency Injection)依赖注入
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
使用入门
1.加载maven坐标:spring-context
2.创建xml配置文件
3.配置xml文件的bean方法,把需要管理的类,交给容器
4.获取容器
ClassPathXmlApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
5.使用容器获取bean,并使用bean方法
BookService bookservice1 = (BookService) cxt.getBean("bookservice1");
bookservice1.save();
配置文件细节
实例化bean的三种方法
1.构造方法:无参构造方法
2.静态工厂
3.实例工厂
依赖注入方式选择
强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现
可选依赖使用setter注入进行,灵活性强
Spring框架倡导使用构造器,第三方框架内部大多数采用构造器注入的形式进行数据初始化,相对严谨
如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入
实际开发过程中还要根据实际情况分析,如果受控对象没有提供setter方法就必须使用构造器注入
自己开发的模块推荐使用setter注入
Spring加载数据源文件
1.创建properties数据源文件
2.修改spring配置文件的命名空间
3.使用` <context:property-placeholder location=“jdbc.properties”/> 标签命令加载properties文件
再配置,使用${}读取加载的属性值
<bean class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
容器
`