Spring学习笔记

Spring学习笔记

Spring入门案例:

第一步:导入jar包:

(1)做Spring最基本的功能时,只需要导这四个核心的jar包就可以了

(2)导入支持日志输出的jar包

 

第二步:创建类,在类中创建方法

 

第三部:创建Spring配置文件,在配置文件中创建方法

(1)      Spring的核心配置文件的名称和位置不是固定的

建议放到src下,名称建议是applicationContext.xml

(2)      引入schema约束

<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="

   http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">

 

(3)      配置对象的创建

 

第四步:写代码测试对象的创建

  

 

Spring的bean管理(XML方式):

bean实例化的方式:

bean实例化的三种方式

  第一种:使用类的无参构造方法创建

这种就是利用类中的无参构造方法进行创建的。

 

第二种:使用静态工厂创建

       创建静态的方法,返回类的对象

 

 

第三种:使用实例工厂创建

        创建不是静态的方法,返回类的对象。

 

bean标签常用的属性:

(1)      id属性   起名称,属性值可以随意命名

 

(2)      class属性  创建对象所在类的全路经

 

(3)      name属性   功能和id属性是相似的,不过id的值不能包含特殊的符号,但是name的值可以包含特殊的符号

 

(4)      scope属性

(1)      singleton 单例对象(默认)

(2)      prototype 多例

(3)      request 将对象方法request对象中

(4)      session 将对象放到session对象中去

(5)      globalSession 将对象放到globalSession域中

 

 

 

 

属性注入:

1 在创建对象时,并向类中的属性设置值

 

2 属性注入的三种方式:

  第一种 使用set方法注入

  第二种 使用有参的构造方法注入

第三种 使用接口注入

3 在spring框架中只支持前两种方式注入(set方法注入,使用有参的构造方法注入)

    

(1)使用有参构造方法注入属性值演示:

   

 

 

 

 

(2)使用set方法注入属性值演示:(重点)

  

 

 

注入对象类型的属性(重点)

  1 创建service类和dao类

     在service类中得到dao类的对象

  

2 具体的实现过程:

(1)      在service类中将dao作为类型属性

(2)      生成dao类型属性的set方法

 

 

 

(3)      在配置文件中完成对象属性的注入 

 

P名称空间的注入:

 

 

注入复杂类型的属性

1        数组类型

 

2        list集合类型

 

3 Map集合类型

 

4  properties类型

 

 

IOC与DI的区别:

  (1)IOC  控制反转   表示将类的创建交给Spring框架进行控制(配置)

  (2)Di   依赖注入   类中的属性依赖Spring框架进行注入

  (3)关系: 依赖注入不能单独存在,必须在ioc(控制反转)的基础上完成

 

 

 

Spring整合Web项目的原理:

1 加载Spring核心配置文件:

这样每次都new出来会导致效率很低。

 

3        提高效率的实现思想:把加载配置文件和创建对象的过程,在服务器启动时完成

 

Spring的bean管理(注解):

注解介绍:
   1 是代码中的特殊标记,使用注解可以完成功能。
   2 注解写法 @注解名称(属性名称=属性值)
   3 注解使用在类上面,方法上面和属性上面
 
Spring注解开发准备:
1 导入jar包
(1)            导入Spring的基本的jar包
   
(2)导入Spring的aop的jar包
  

 

2  创建类,创建一个方法

创建Spring的配置文件,引入约束

 

 

3  开启注解扫描

注解创建对象:

(1)      在创建对象的类上使用注解实现

(2)      创建对象有四个注解:

               @Component

               @Controller

               @Service

               @Repository

              目前这四个注解都是创建对象的功能

 

        (3)创建对象是单实例还是多实例

            

         

 

 

 

注解注入属性:

1 创建Service类,创建dao类 在Service中得到dao对象

   注入属性的第一个注解 AutoWired

(1)      创建Service对象和dao对象

 

 

2 在Service类中定义dao类型属性

注入属性的第二个注解  @Resourse(name=“”)

 

 

配置文件和注解混合使用

 1 创建对象使用配置文件的方式实现

2 注入属性使用注解的方式实现

 

AOP的概念

1 aop是面向切面(平面)的编程,扩展功能不需要修改源代码

2 aop采取横向抽取机制,取代了传统纵向继承体系重复性的代码

Aop的原理

 

AOP相关的术语

 

连接点:一个类中哪些方法可以被增强,这个方法就称为连接点。

切入点:一个类中有很多方法可以被增强,实际操作中被实际增强的方法就叫做切入点。

通知/增强:增强的逻辑就叫增强,比如说这个类中需要增强一个日志的功能,那么这个功能就叫增强。

1)  前置通知  在方法之前执行

2)  后置通知  在方法之后执行

3)  异常通知  出现异常时执行

4)  最终通知  在后置之后执行

5)  环绕通知  在方法之前和方法之后执行

 

切面:把增强应用到具体的方法上面,过程称为切面。(把增强应用到切入点上面的过程)

 

Spring的aop操作:

 1 在Spring里面进行aop操作,使用aspectj实现。

(1)      aspectj不是Spring的一部分,是一个进行aop操作的框架,和Spring一起使用进行aop操作

2 使用aspectj实现aop操作有两种方式:

1)  基于aspectj的XML形式

2)  基于aspectj的注解的形式

 

AOP操作的准备工作:

1 除了导入基本的jar包外,还要导入aop相关的jar包。

2创建Spring的核心配置文件,引入aop的约束

 <beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="

       http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd">

使用表达式配置切入点:

1 切入点   就是实际增强的方法;

2 常用的表达式:

(1)      execution(*com.seac.aop.Book.add(..))

(2)      execution(*com.seac.aop.Book.*(..))

(3)      execution(* *.*(..))

(4)      匹配所有save开头的方法execution(* save.*(..))

 

Acpectj的aop操作:

 

 

 

 

 

 

Log4j介绍:

1 通过log4j能够看到程序运行过程中的更详细的信息。

  经常使用log4j查看日志

 

2 log4j的使用:

1)  导入log4j的jar包

2)  复制log4j的配置文件,复制到src下

3)  设置日志的级别

Debug

Info

 

Spring整合web项目的演示:

1 演示的问题
   (1)action调用service,Service调用dao,

 

这样每次访问action时都创建一次ApplicationContext对象,影响效率》

 

2解决方案:

1)   在服务器启动时,就创建对象加载配置文件。

2)底层使用监听器,servletContext对象

 

3在Spring中不需要我们写代码实现,已经封装。

1)  封装了监听器,我们只需配置监听器就可以了

2)  配置Spring的监听器之前要导入一个Spring的整合web项目的jar包

 

基于aspectj的注解的形式进行Aop操作

1 使用注解方式实现aop操作:

  第一步:创建对象

第二步:在Spring的核心配置文件中开启aop的操作配置

第三部:在增强类上使用注解完成aop操作

 

 

Spring的jdbcTemplate操作:

1 Spring框架是一站式框架,

   针对javaee三层,每层都有解决的技术

   在dao层使用jdbcTemplate

 

2 Spring对不同的持久化层技术都做了封装

 

JdbcTemplete就是Spring对Jdbc做了封装

 

3  JdbcTemple使用和dbutilus使用很相似,都是对数据库进行CRUD操作

 

 

 

 

 

增加

1 导入JdbcTemplete使用的jar包

 

2        创建对象,设置数据库的信息

 

3        创建JdbcTemplate对象,设置数据源

 

4 调用JdbcTemplate对象中的方法实现操作

 

修改

 

 

删除

查询

1 使用JdbcTemplate进行查询操作

 

 

 

 

 

 

 

 

 

 

 

 

 

2 查询具体实现

  第一个 查询返回一个值

 

  第二种 查询返回一个对象

==============================================================================

 

  第三种 查询返回一个list集合

 

 

 

 

Spring配置连接池和dao使用jdbcTemplate:

1.   Spring配置c3p0的连接池:

1导入jar包

2 创建Spring的配置文件,配置连接池。

使用配置文件进行配置

2.       Dao中使用jdbcTemplate:

Spring事务的管理:

Spring事务管理的APi:

1Spring事务管理的两种方式:

  第一种 编程式事务管理:(基本不用)

  第二种 声明式事务管理

(1)      基于XML配置文件实现

(2)      基于注解的方式实现

2        Spring事务管理的APi介绍:

(2)首先要配置事务管理器的对象:

搭建转账环境:

1 创建数据库表添加数据

2 创建Service和dao类,完成注入关系

 

 

(3)      需求小王转给小马1000块,小王减1000,小马增1000.

此时没使用事务会产生问题,如果小王少了1000后程序出现异常,小马的钱就没有增加,导致钱就丢失了。

(4) 解决方法:

添加事务解决,出现异常进行回滚操作

 

声明式事务管理(xml方式)

1 配置文件方式,使用aop思想配置

 第一步 配置事务管理器:

 

第二步 配置事务的增强

 

第三步 配置切面

 

 

 

声明式事务管理(注解方式)

第一步:开启事务管理器

第二步:配置事务注解

第三步:在要使用事务的方法的所在类上添加注解

SSH框架的整合思想:

 


Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一种轻量级的、非侵入式的开发方式,通过依赖注入和面向切面编程等特性,简化了Java应用程序的开发过程。 以下是关于Spring学习的一些笔记: 1. IoC(控制反转):Spring通过IoC容器管理对象的创建和依赖关系的注入。通过配置文件或注解,将对象的创建和依赖关系的维护交给Spring容器来管理,降低了组件之间的耦合度。 2. DI(依赖注入):Spring通过依赖注入将对象之间的依赖关系解耦。通过构造函数、Setter方法或注解,将依赖的对象注入到目标对象中,使得对象之间的关系更加灵活和可维护。 3. AOP(面向切面编程):Spring提供了AOP的支持,可以将与业务逻辑无关的横切关注点(如日志、事务管理等)从业务逻辑中分离出来,提高了代码的可重用性和可维护性。 4. MVC(模型-视图-控制器):Spring提供了一个MVC框架,用于构建Web应用程序。通过DispatcherServlet、Controller、ViewResolver等组件,实现了请求的分发和处理,将业务逻辑和视图展示进行了分离。 5. JDBC和ORM支持:Spring提供了对JDBC和ORM框架(如Hibernate、MyBatis)的集成支持,简化了数据库访问的操作,提高了开发效率。 6. 事务管理:Spring提供了对事务的支持,通过声明式事务管理和编程式事务管理,实现了对数据库事务的控制和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值