Spring框架入门

小灰灰 2021-03-29 13:35 844阅读 0赞

1.1专业术语了解

组件/框架设计

侵入式设计

引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。

例如: Struts框架 继承ActionSupport

非侵入式设计

引入了框架,对现有的类结构没有影响。

例如:Hibernate框架 / Spring框架

控制反转:

控制反转 ,IOCInversion on Control

对象的创建交给外部容器完成,这个就做控制反转.

原本在业务逻辑层里面,需要得到DAO的实现,要么在业务逻辑层直接new,要么使用工厂获取一个。这种叫做【主动获取依赖】。

在IoC的时候,由容器决定给业务逻辑层注入哪个实例,不再需要自己手动new或者调用工厂get。

依赖注入, dependency injection

处理对象的依赖关系

比如现在我们的业务逻辑层实现好了,需要用到数据库,一定有DAO接口。

这个接口,在不同的持久化实现的时候,接口的实现都不一样!

容器里面,能够找到合适实现,注入给业务逻辑层,避免自己在业务逻辑层里面去new!可以在任何的时候更换实现,目的是为【去耦合】。

区别:

控制反转:解决对象创建的问题 【对象创建交给别人】

依赖注入:在创建完对象后, 对象的关系的处理就是依赖注入 【通过set方法依赖注入】

AOP

面向切面编程。切面,简单来说来可以理解为一个类,由很多重复代码形成的类。

切面举例:事务、日志、权限;

2.2 Spring框架 

a. 概述

Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架。

且可以和其他框架一起使用;Spring与Struts, Spring与hibernate

(起到整合(粘合)作用的一个框架)

Spring提供了一站式解决方案:

1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系

2) Spring Web Spring对web模块的支持。

—> 可以与struts整合,让struts的action创建交给spring

—>spring mvc模式

3) Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】

4) Spring ORM spring对orm的支持:

—> 既可以与hibernate整合,【session】

—> 也可以使用spring对hibernate操作的封装

5)Spring AOP 切面编程

6)SpringEE spring 对javaEE其他模块的支持

3.3 Spring开发步骤

  3.1、导包   

使用下载安装方式得到的Spring,最少需要的依赖包

spring-context-4.3.6.RELEASE.jar

—->Spring里面的核心jar文件之一,负责读取、解析XML配置文件

spring-aop-4.3.6.RELEASE.jar

—->面向切面编程的支持,也是核心jar文件之一

spring-beans-4.3.6.RELEASE.jar

—->负责beans元素的处理,整个xml配置的规范都在这里定义的

spring-core-4.3.6.RELEASE.jar

—->最核心的容器,负责管理一个个的bean(实例)

spring-expression-4.3.6.RELEASE.jar

—->Sp EL的支持包,在Spring里面能够直接使用表达式简化XML的配置

-——————以下包可选——————————-

commons-logging-1.2.jar

—->Spring里面需要使用的日志记录依赖包,默认情况下,直接使用System.err输出日志,默认级别是info

log4j-jcl-2.7.jar

—->把commons-logging的输出,桥接到log4j 2输出,所有的日志级别、输出目标全部受到log4j 2控制。

log4j-api-2.7.jar

—->log4j 2的api,一堆接口

log4j-core-2.7.jar

—->log4j 2的实现

  3.2、核心配置文件applicationContext.xml

Spring配置文件:applicationContext.xml / bean.xml

   约束参考:spring-framework-4.3.6.RELEASE\docs\spring-framework-reference\html

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6.     <!-- IOC容器的配置: 要创建的所有的对象都配置在这里-->
  7.     <bean id="u1" class="org.fkjava.spring.domain.User"></bean>
  8. </beans>

  3.3、spring的Api

创建一个实体类User 

  1. package org.fkjava.spring.domain; public class User { private String userName; //无参构造器
  2. public User() { System.out.println("User的无参构造器被调用"); } public String getUserName() { return userName; } public void setUserName(String userName) { System.out.println("注入的值:" + userName); this.userName = userName; }

依赖注入的简单测试

  1. package org.fkjava.test; import org.fkjava.spring.dao.UserDao; import org.fkjava.spring.domain.User; import org.fkjava.spring.service.UserService; import org.springframework.context.support.ClassPathXmlApplicationContext; public class 依赖注入的简单测试 { public static void main(String[] args) { // 得到IOC容器对象,读取【applicationContext.xml】文件。直接得到IOC容器对象
  2.      ClassPathXmlApplicationContext cpc = new ClassPathXmlApplicationContext("applicationContext.xml");
  3.     //User u = new User(); //之前获取对象需要创建一个对象,现用spring的Ioc容器后,先得到IOC容器,然后从容器中获取bean      
  4.     //从IOC容器中获取bean,从而得到对象
  5.     User user = (User) cpc.getBean("u1");
  6.     System.out.println(user);   } }

输出:

  1.   User的无参构造器被调用
  2.   org.fkjava.spring.domain.User@1680b5a

发表评论

表情:
评论列表 (有 0 条评论,844人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring 框架——spring入门教程

    打个广告,帮朋友卖点东西,东西超便宜的哟【衣服鞋子等】,厂家直接出货,绝对低于市场价!!! 一般都比市场价便宜3—7折【都是牌子货】,如果您感兴趣,可以扫描屏幕下方的二维码,感

    相关 Spring框架入门操作

    > 学了几个框架之后,学习Spring框架的时候就很简单了,这篇博客先说一下spring框架的操作步骤,他的IOC、DI、AOP在以后的文章中再分享。 > > 如何创建一个s

    相关 Spring框架入门

    1.1专业术语了解 组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。 例如: Struts框架 继承ActionSupp...