Spring框架学习笔记(1)
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的优势
方便解耦,简化开发
AOP编程的支持
声明式事务的支持
方便程序的测试
方便集成各种优秀框架
降低JavaEE API的使用难度
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 实例化的三种方式:
无参构造方法实例化,默认的:让Spring调用bean的无参构造,生成bean实例对象给我们。
工厂静态方法实例化:让Spring调用一个工厂类的静态方法,得到一个bean实例对象。
工厂非静态方法实例化(实例化方法):让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)的更多相关文章
- Spring框架学习笔记(5)——Spring Boot创建与使用
Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...
- Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建
之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...
- 手写Spring框架学习笔记
以下是咕泡公开课的学习笔记 一.创建工程springdemo 二.在pom中配置servlet <dependency> <groupId>javax.servlet</ ...
- Spring框架学习笔记(3)——SpringMVC框架
SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...
- spring框架学习笔记7:事务管理及案例
Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...
- Spring框架学习笔记(1)——HelloWorld
1.创建一个新的项目,并添加Spring框架 2.创建HelloWorld.java package com.broadtext.beans.helloworld; public class Hell ...
- spring框架学习笔记6:JDBC模板
JDBC模板:Spring中对数据库的操作. 这一部分对熟悉DBUtils的QueryRunner的开发者来说,非常简单 这是以前我简单写的dbutils的知识: http://www.cnblogs ...
- spring框架学习笔记1:搭建测试
Spring框架介绍: Spring框架涵盖了web.service.dao三层,本身是一个存放对象的容器 形象来说:Spring是项目中对象管家 Spring框架的两大核心思想:控制反转(IOC). ...
- Spring框架学习笔记(1)——控制反转IOC与依赖注入DI
Spring框架的主要作用,就是提供了一个容器,使用该容器就可以创建并管理对象.比如说Dao类等,又或者是具有多依赖关系的类(Student类中包含有Teacher类的成员变量) Spring有两个核 ...
随机推荐
- Linux Centos 下安装npm 实测可用
转载地址 https://blog.csdn.net/u012129607/article/details/60966045 1.root 登录linux 2.没有目录就自己创建一个 cd /usr/ ...
- Spring Boot整合ElasticSearch和Mysql 附案例源码
导读 前二天,写了一篇ElasticSearch7.8.1从入门到精通的(点我直达),但是还没有整合到SpringBoot中,下面演示将ElasticSearch和mysql整合到Spring Boo ...
- 5年Java程序员,五面蚂蚁险拿offer定级P7,大厂面试不过如此?
当时面试能记下的就这些了,可能不太全请见谅: 一面 1.HashMap和ConcurrentHashMap: 2.再谈谈一致hash算法? 3.乐观锁还有悲观锁: 4.可重入锁和Synchronize ...
- 浏览器自动化的一些体会9 webBrowser控件之零碎问题3
WebBrowser控件最大的优点是可以轻松嵌入win form程序中,但是微软好像对这个控件没什么兴趣,这么多年了还没有改进,结果造成一堆问题. 1. 不支持https 2. 缺省模拟ie 7,如果 ...
- unity探索者之微信分享回调
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/7574561.html 上一遍讲了微信分享的一些坑,然后就忘了回调这事儿了,今天补上 ...
- 基于官方Drone-CI 的alpine版本asia亚洲时区构建支持. Drone-CI based alpine Timezone Build
基于官方Drone-CI 的alpine版本最简化添加亚洲时区Dockerfile构建支持. iotd@Github: drone-ci-based-alpine-timezone-build 如添加 ...
- Magento1.9 add attribute to catalog product & assign to all attribute set general group
$installer = $this; $attributes = array( 'region' => array( 'type' => 'int', 'input' => 'se ...
- Kubernetes 编写自定义 controller
原文链接:Kubernetes编写自定义controller 来自kubernetes官方github的一张图: 如图所示,图中的组件分为client-go和custom controller两部分: ...
- Synergy--跨平台的键鼠共享工具
目前的状态,Windows并没有彻底放弃使用,现在一个电脑桌上摆放了一台Mac pro 一台Windows,两个笔记本都是15寸的,如果想要方便的使用外设鼠标键盘,整个桌子会异常的臃肿,鼠标键盘太占地 ...
- Docker 镜像构建之 Dockerfile
在 Docker 中创建镜像最常用的方式,就是使用 Dockerfile.Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明.官方文档:https://d ...