01_spring_ 简介| 学习笔记

简介: 快速学习 01_spring_ 简介

开发者学堂课程【Java Web 开发系列课程:Spring 框架入门01_spring_ 简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/538/detail/7333


01_spring_简介

 

内容介绍:

一、spring 介绍

二、spring 理念

三、spring 优点

四、主要内容

五、ioc——inversion of control 控制反转

 

一、spring 介绍

spring:春天;——给软件行业带来了春天。作者 Rod Jonhson。

Spring 代码很简单,重要在思想上。难在把框架和项目结合,难在项目的复杂程度。学习 spring 之后,还要把它结合到项目里去。

 

二、spring 理念

理念:是现有技术更加实用。

作者认为现有的框架已经够多了,没有必要再去创建新的框架、新的技术,把现有的框架和技术合理的运用和整合,让现有的技术运作的更好。不同的框架作用不一样,需求不一样,运用的项目的侧重点不一样。作者整合了其他框架,起到了一个粘合剂的作用,将 spring 发展完善。目前 spring 有着非常多的技术,具体可以进入 spring 官网查看。在官网里可以看到有很多组件。在 project 里面可以看见很多项目。

比如 SPING IO PLATFORM、SPRING BOOT、SPRING FRAMEWORK、SPRING XD、SPRING CLOUD、SPRING DATA、SPRING ENTEGRATION、SPRING BATCH、SPRING SECURITYD 等等等等一系列项目。

现在我们学习的是 spring framework,本身是大杂烩整合现有的框架技术。

 

三、Spring 优点

轻量级框架(框架不具有倾入性,倾入性就是在接触某个框架时不去实现它的接口。)轻量级框架的好处是替换它的时候,原有的代码依然可以使用,不需要改变。

提供 Ioc 容器——控制反转(Spring 的核心内容)

Aop 面向切面编程

对事务的支持:本身就支持 JDBC 等简单的事务,它还支持一些第三方的事务。

对框架的支持——Spring 本身最原始的技术就是把所有的框架整合在一起。

还有其他一些优点,在文件里面可以进行查看。

 

四、主要内容 

首先 Spring 支持 junit 单元测试,也就是说使用 Spring 的时候不用启动服务器之类的东西。

第二是核心容器(Core Container),也是所学重点,包括核心(Core),Core 是一切的基础,包括 Beans 工厂用来创建对象的,还有上下文 Context,SpEL 是 Spring 的表达式,目前不讲。

重点是 AOP 和 Aspects。

再往上是 Spring 对 Data Access 数据访问的支持,支持 JDBC、ORM、OXM、JMS 邮件服务、Transactions 事务。还有对 Web 的支持,包括 WebSocker、Serviet、Web、Portlet,放在 MVC 里面去讲。

 

五、ioc——inversion of control 控制反转

打开 Java 软件,新建 Java Project,Project nam e 为 01spring4_ioc1。

点击 Finish 后点确定。之后打开 src,Java Package内Name为cn.sxt.dao。

点击 Finish。 Java Interface 里修改 Name 为 UserDao。

点击 Finish,然后进行代码编写。具体代码如下:

package cn.sxt.dao:

public interface UserDao{

public void getUser();

}

接口需要类,先建一个类包,方便扩展,解决耦合性。

package cn.sxt.dao. impl;

import cn. sxt . dao. UserDao;

public class UserDaoImpl implements UserDao {

@Override

public void getUser ( ) {

System. out . print1n("获取用户数据") ;

}

}

再创建一个 cn.sxt.service:

package cn. sxt. service ;

public interface UserService {

public void getUser ( )

}

Service 里的实现是根据 dao。

package cn. sxt.service. impl;

import cn. sxt. dao.UserDao;

import cn. sxt .dao . impl . UserDaoImpl;

import cn. sxt. service.UserService;

public class UserServiceImpl implements UserService {

private UserDao userDao = new UserDaoImpl ( );

@Override

public void getUser ( ) {

userDao. getUser ( );

}

}

不同的 dao 实现不同。一旦改变了 dao,service 里面的 dao 调用也要改变,对象是自己创建的,当改变对象时原码也要重新去写。为了不去改变原码,可以通过以下方法:

public class Test {

public static void main(String[] args) {

UserServiceImpl userService = new UserServiceImpl ( );

userService. setUserDao( new UserDaoMySqlImpl ( ) );

userService. getUser ( ) ;

System. out. println(“--------------“);

userService . setUserDao(new UserDao0racleImpl ( ) );

userService. getUser ( );

}

}

以上是让程序自己去 new 一个对象的方法,除此之外还有把他放进配置文件,然后调用配置文件的方法,此时程序不用管代码,只提供一个接口。程序员不再关注对象本身的具体实现,更多的去关注业务。现在和 dao 的实现无关,直接依赖于对象的创建。

public class UserServiceImpl implements UserService{

private UserDao userDao=null ;

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

通过案例:

对象由原来程序本身创建,变为了程序接收对象。

程序员主要精力集中于业务实现。

实现了 service 和 dao 的解耦工作。Service 层和 dao 层实现了分离。没有直接依赖关系。

如果 dao 的实现发生改变,应用程序本身不用改变

相关文章
|
4天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
24 9
|
24天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
33 9
|
25天前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
19 1
|
29天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
52 2
|
29天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
49 1
|
29天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
20 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
29天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
22 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
29天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
49 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
29天前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
22 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
29天前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
41 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
下一篇
无影云桌面