Spring

1、IOC


1.1、IOC容器

1.1.1、IOC思想

ICO:Inversion of Controller,翻译过来就是 反转控制

例如:自己做饭,需要自己全程参与。现在点外卖就可以了

DI:Dependency injection,翻译过来就是依赖注入。DI实现ICO

1.1.2、IOC容器在Spring中的实现

Spring 的 IOC 容器就是 IOC 思想的一个落地产品实现。IOC 容器中管理的组件也叫做 bean。在创建bean 之前,首先需要创建IOC 容器。Spring 提供了 IOC 容器的两种实现方式:

(1)BeanFactory

这是IOC容器的基本实现,是Spring内部使用的接口。面向Spring本身,不提供给开发人员使用。

(2)ApplicationContex

BeanFacory的子接口,提供了更多的高级特性。面向Spring的使用者,几乎所有场合都使用Applicationcontext而不是底层 BeanFactory。

1.2、基于XML管理bean

1.2.1、实验一:IOC入门案例

(1)创建maven module

(2)引入依赖

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.23</version>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

(3) 创建类HelloWorld

 (4)创建Spring的配置文件

 (5)在Spring配置文件中配置bean

(6)创建测试类

1.2.2 、DI入门案例

将HelloWorld1注入到HelloWorld2中

(1)创建maven module

(2)引入依赖

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.23</version>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

(3)创建HelloWorld1

(4)创建HelloWorld2

(5)在Spring配置文件中配置bean

(6)测试

1.3、bean配置

1.3.1、bena的别名

        注意。别名和id不能重复。

1.3.2、控制bean的创建是单例还是多例(默认为单例)

 为什么bean默认是单例。

1.4、bean的生命周期

1.4.1、通过配置初始化方法和销毁方法

(1)创建初始化方法和销毁方法

(2)配置文件

(3)测试类实现方法

1.4.2、实现接口完成其声明周期

 1.5、依赖注入

1.5.1、setter引用注入

        将HelloWorld1,HelloWorld2注入到HelloWorld3 

1.5.2、setter基本注入 

         将基本数值(int,string)注入到HelloWorld1类中 

1.5.3、构造器引用注入---了解

1.5.4、构造器基本注入---了解

1.5.5、自动装配---了解

 1.5.6、集合注入---了解

<bean>

        <property name="array"> //注入数组

                <array>

                        <value>1</value>

                        <value>1</value>

                </array>       

        </property>

        <property name="list"> //注入List

                <list>

                        <value>1</value>

                        <value>1</value>

                </list>       

        </property>

        <property name="set"> //注入set

                <set>

                        <value>1</value>

                </set>       

        </property>

        <property name="map"> //注入map

                <map>

                        <entry key="city" value="长沙"></entry>

                </map>       

        </property>

        <property name="properties"> //注入map

                <props>

                        <prop key="city">长沙</prop>

                </props>       

        </property>

</bean>

2、注解开发


2.1、注解开发定义bean

2.1.1、使用@Component注解定义bean

2.1.2、核心配置文件中通过组件扫描加载bean

2.1.3、测试

2.1.4、Spring提供@Component注解的三个衍生注解

@Controller:用于表现层bean定义

@Service:用于业务层bean开发

@Repository:用于数据层bean定义

2.2、纯注解开发

2.2.1、将applicaionContent.xml配置文件,改为配置类

创建一个配置类放在config.SpringConfig配置类中,使用Configuration,和包扫描ComponentScan

2.2.2、将测试类中的配置文件引入的方式改为配置类引入 

2.3、注解开发bean作用范围与生命周期管理

2.3.1、配置单例或多例---@Scope("prootype") 

2.3.2、生命周期

 2.4、依赖注入

2.4.1、纯注解开发将HelloWorld1注入到HelloWorld2的引用注入

 除了@Autowired注解之外还有@Qualifier注解他要配合@Autowired使用。一般也不用@Qualifier

2.4.2、纯注解开发读取properties文件注入基本数据

(1)新建jdbcpropertie文件

(2)配置类中导入properies文件

 (3)使用@Value注解注入值

2.5、注入第三方bean

2.5.1、注入方式一

(1)在pom.xml文件中倒入第三方jar用druid来演示

(2)在配置文件中使用@Bean注解来管理

 (3)测试

2.5.2、方式二、将其从配置文件中拿出使用@Configuration

(1)新建一个专门管理Druid的类,也使用@Configuration注解,让其也成为配置类

 (2)在Spring配置文件中,使用包扫描技术扫描Druid的配置文件

(3)测试        

 2.5.3、方式三、将其从配置文件中拿出使用@Import

 (1)新建一个专门管理Druid的类,也使用@Configuration注解,让其也成为配置类

 (2)在Spring配置文件中,使用Import导入Druid的配置文件

 (3)测试

2.5.4、方式4、将其从配置文件中拿出使用@Import,并注入普通值

3、AOP


面向切面编程,一种编程范式、指导开发者如何组织程序结构

在不惊动原始设计的基础上为其添加功能

3.1、AOP入门案例

3.1.1、导入坐标(pom.xml) 

3.1.2、制作连接点方法(原始操作,Dao接口实现类)--使用HelloWorld为例

 3.1.3、制作共性功能(通知类与通知)

新建一个aop.MyAdvice的通知类

3.1.4、定义切入点

 3.1.5、绑定切入点与通知关系(切面) 

3.1.6、测试

 3.2、切入点表达式 

 3.3、AOP通知类型 

3.4、AOP通知获取数据

 4、Spring事务

事务作用:在数据层保障一系列的数据操作同时成功同失败

Spring事务作用:在数据层或业务层保障一系列的数据库操作同时成功同失败

 4.1、事务的属性

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值