Spring
概念:分层的javaSE/EE轻量级开源框架他可以整合其他的大部分技术**
体系结构
底层:核心容器 IOC和di(依赖注入)
中间层:思想和实现
应用层:访问数据、将其他的技术应用到自身
优势:
ioc ----inversion of control 反转控制
以前我们使用对象就是new一个 然后使用 现在是spring已经将对象创建出来放在了IOC容器里面去了,我们自己拿来使用就行
核心依赖是:spring-context
spring的核心配置文件 命名习惯 applicationContext.xml
xml ioc配置
标签:
bean
id-----得到对象的唯一标识
class----对象的全类名
scope—单例还是多例 ioc容器只存单例对象 因为单例对象返回才是同一个对象 如果是多例 每次创建的都不是同一个对象 返回来没什么用 浪费资源 singleton prototype (request、session、application、webscoket)
init-method destory-method 生命周期的方法
静态工厂和非静态工厂
静态工厂:就是直接通过factory-method指定一个方法创建一个对象
非静态方法:需要创建这个工厂然后在用里面的一个方法得到这个对象 factory-bean=“factory” factory-method指定一个方法
依赖注入 两种方式
1、property
name—set方法对应的名字的首字母小写其余大写
value和ref 就是普通数据类型和引用数据类型给其赋值
2、constructor-arg
name—构造方法的参数名字
value—同上
注意:两种方式都要有对应的set方法和构造方法 而且构造方法的参数个数要和配置的个数要对应
还可以混合使用
配置第三方bean对象
上代码吧
<!--配置druid连接池-->
<!--
DruidDataSource ds=new DruidDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/db3");
ds.setUsername("root");
ds.setPassword("root");
-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/heima_mm"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
引入外部文件
<context:property-placeholder location="classpath:jdbc.properties"/>
然后名称空间对应的地方需要改一下
如果有多个核心配置文件
可以将其他的文件导入到最核心的一个配置文件
<import resource="classpath:applicationContext-dao.xml"/>
将mybatis的配置文件 整合到spring中
1、导入依赖 mybatis-spring spring-jdbc
2、在spring的核心配置文件整合mybatis
a、jdbc b、mapperScannerConfigurer c、DruidDataSourceFactoryBean
如果不配置映射文件的话 需要在对应的接口上写注解sql语句
本质就是将mybatis里面的东西一个个的在spring核心配置文件中写对应的bean