Spring 框架学习笔记(1)

一、简介

  • Rod Johnson(spring之父)

  • Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架,以IoC(Inversion of Controll,控制反转,解耦)和AOP(Aspect oriented programming,面向切面编程,底层是动态代理)为内核。

  • 提供:能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

    • 表示层Spring MVC

    • 持久层Spring JDBCTemplate,Spring Data JPA

    • 业务层事务管理等等

二、Spring的优势

  1. 方便解耦,简化开发

  2. AOP编程的支持

  3. 声明式事务的支持

  4. 方便程序的测试

  5. 方便集成各种优秀框架

  6. 降低JavaEE API的使用难度

  7. Java源码是经典学习范例

三、Spring的体系结构

  

四、控制反转 IOC

  • IoC:Inversion of Control,控制反转。是指 把创建对象的控制权交给框架:要想得到一个对象,由原来的主动创建对象,变成自己被动接收 框架创建的对象。

  • IoC是Spring的核心思想之一

  • 作用:用于降低程序间的耦合性

  • IoC设计模式:工厂设计模式

  (1)XML的IoC

注册bean:

  • 配置示例:<bean id=" " class=" " scope=" " init-method=" " dedtroy-method=" ">

  • id属性:bean对象的唯一标识

  • class属性:bean的全限定类名

  • scope属性:bean的作用范围(singleton:默认值,单例的;prototype:多例的)

  • init-method属性:指定一个初始化方法

  • dedtroy-method:指定一个销毁方法

bean 实例化的三种方式:

  1. 无参构造方法实例化,默认的:让Spring调用bean的无参构造,生成bean实例对象给我们。

  2. 工厂静态方法实例化:让Spring调用一个工厂类的静态方法,得到一个bean实例对象。

  3. 工厂非静态方法实例化(实例化方法):让Spring调用一个工厂对象的非静态方法,得到一个bean实例对象。

依赖注入:下面讲

  (2)注解的IoC

  (3)纯注解的IoC

五、依赖注入DI

  (1)依赖注入:Dependency Injection,是Spring的Ioc核心的具体实现。(也叫 自动装配)

    • 类里依赖什么,由Spring注入(提供)什么

  (2)三种常见注入方式:

    • set方法注入

    • 构造方法注入

    • p名称空间注入

(3)注入集合数据:

    比如:给数组、List、Set、Map等注入数据

    所有单列结构的数据集合,标签可以互换使用。例如:List、Set、数组等

    所有键值对结构的数据集合,标签可以互换使用。例如:Map、Properties等

Spring框架学习笔记(1)的更多相关文章

  1. Spring框架学习笔记(5)——Spring Boot创建与使用

    Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...

  2. Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建

    之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...

  3. 手写Spring框架学习笔记

    以下是咕泡公开课的学习笔记 一.创建工程springdemo 二.在pom中配置servlet <dependency> <groupId>javax.servlet</ ...

  4. Spring框架学习笔记(3)——SpringMVC框架

    SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...

  5. spring框架学习笔记7:事务管理及案例

    Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...

  6. Spring框架学习笔记(1)——HelloWorld

    1.创建一个新的项目,并添加Spring框架 2.创建HelloWorld.java package com.broadtext.beans.helloworld; public class Hell ...

  7. spring框架学习笔记6:JDBC模板

    JDBC模板:Spring中对数据库的操作. 这一部分对熟悉DBUtils的QueryRunner的开发者来说,非常简单 这是以前我简单写的dbutils的知识: http://www.cnblogs ...

  8. spring框架学习笔记1:搭建测试

    Spring框架介绍: Spring框架涵盖了web.service.dao三层,本身是一个存放对象的容器 形象来说:Spring是项目中对象管家 Spring框架的两大核心思想:控制反转(IOC). ...

  9. Spring框架学习笔记(1)——控制反转IOC与依赖注入DI

    Spring框架的主要作用,就是提供了一个容器,使用该容器就可以创建并管理对象.比如说Dao类等,又或者是具有多依赖关系的类(Student类中包含有Teacher类的成员变量) Spring有两个核 ...

随机推荐

  1. 盘点 35 个 Apache 顶级项目,我拜服了…

    Apache 软件基金会 Apache 软件基金会,全称:Apache Software Foundation,简称:ASF,成立于 1999 年 7 月,是目前世界上最大的最受欢迎的开源软件基金会, ...

  2. JavaScript Object的defineProperty / getOwnPropertyDescriptor

    getOwnPropertyDescriptor and defineProperty function def (obj, key, val, enumerable) { Object.define ...

  3. Homekit_二路继电器

    介绍一款二路继电器,使用Homekit进行控制,有兴趣的可以去以下链接看看: https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-11265006 ...

  4. Idea + maven搭建SSM框架

    1.打开idea,新建项目,选择maven骨架,然后填写包名和项目名称,一直下一步. 接着下一步,配置项目的maven环境 创建完成之后,如下图:(上边的项目名字只是例子,具体的以自己搭建的项目名为准 ...

  5. css 引入的 方式有哪些? link与post有什么区别??

    有四钟形式: 1.链入外部样式表,就是把样式表保存为一个样式表文件,然后在页面中用<link rel="stylesheet" type="text/css&quo ...

  6. Linux系统中有趣的命令(可以玩小游戏)

    Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋 ...

  7. idea工程在maven projects中显示灰色的解决办法

    原文链接:https://blog.csdn.net/qq_30507287/article/details/83515461 在Mac上使用idea进行开发的过程中,一般在MavenProject中 ...

  8. Python 判断ip是否属于网段

    import IPy >>>'192.168.1.100' in IPy.IP('192.168.1.0/24') is True >>>'192.168.1.0/ ...

  9. Java 实例 - 查看当前工作目录

    package guyu.day0820; /** * @Author: Fred * @Date: 2020/8/20 14:25 */ public class Demo03 { public s ...

  10. 移动web开发之布局

    移动web开发流式布局 1.0 移动端基础 1.1浏览器现状 PC端常见浏览器:360浏览器.谷歌浏览器.火狐浏览器.QQ浏览器.百度浏览器.搜狗浏览器.IE浏览器. 移动端常见浏览器:UC浏览器,Q ...