Spring IOC

24 篇文章 0 订阅

Spring IOC

ioc:反转控制,即将原本在程序中手动创建对象的控制权,交由Spring框架来管理

ioc容器:是具有以来注入功能的容器,负责对象的实例化,初始化,对象与对象之间以来关系配置、对象销毁、对外提供对象的查找等操作

正控:自己去负责对象的创建

反控:从Spring容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了Spring框架

底层实现方式:解析 xml/扫描注解标签 + 工厂模式 + 反射机制

Spring Bean管理

bean

bean配置需要spring 管理的类

id生成的对象名

class全类名

name 对象别名,可以为多个

scope:

singleton(默认值):在Spring中只存在一个bean实例,单例模式

prototype:原型getBean()的时候都会new Bean()

request:每次http请求都会创建一个bean,仅用于WebApplicationContext环境

session:同一个http session共享一个Bean,不同Session使用不同的Bean,使用环境同上

Xml配置方式依赖注入

指Spring创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设置给该对象

注入方式:

set方法注入

构造方法注入

注解方式实现

1.开启注解扫描

<context:component-scan base-package="包名"> </context:component-scan>

2.注解创建对象

Admin

@Component(value="admin")

@Scope(value="singleton")

AdminDao

@Repository(value ="adminDao")

AdminService

@Service(value="adminService")

@Autowired

是Spring框架自己的注解标签

可以有两种方式:1.通过对象名查找@Qualifier(value="adminDao")

2.按照类型查找

默认注入的对象不能为空

@Qualifier(value="adminDao")

@Resource

是JDK提供的注解标签

可以有两种方式:

1.通过对象名查找

2.按照类型查找

Spring JDBC

spring数据访问层功能,提供Jdbctemplate封装的方法操作数据库,主要使用的是其中的事务管理功能

实现步骤:

<!-- spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>
<!-- 阿里数据源 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

阿里数据源:阿里巴巴开源的数据源管理组件,音译为德鲁伊,提供与数据库连接实现,还提供数据库连接池功能

数据库连接池:因为频繁创建销毁数据库连接对象(Connection),开销较大,提出池的概念,事先缓存一部分连接对象,使用时直接从池中获取,用完不销毁,还回到池中,减少创建销毁时间开销

导入属性文件

<context:property-placeholder location="config.properties"/>

管理数据源对象

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${driverName}"></property>
    <property name="url" value="${url}"></property>
    <property name="username" value="${uname}"></property>
    <property name="password" value="${pwd}"></property>
    <property name="initialSize" value="${initialSize}"></property>
    <property name="maxActive" value="${maxActive}"></property>
    <property name="maxWait" value="${maxWait}"></property>
</bean>

在配置文件中创建JdbcTemplate

<!--配置spring jdbcTemplate 提供了操作的方法-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <!--注入数据源-->
    <property name="dataSource" ref="dataSource"></property>
</bean>

在类中获得JdbcTemplate对象,就可以直接使用了

@Autowird

JdbcTemplate jdbcTemplate;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值