【Spring 从0开始】介绍、入门案例

简介: 【Spring 从0开始】介绍、入门案例

一、什么是Spring


Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。


Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。


从这里提取出一些关键词:


  • 开源:免费的,可以提供源代码。
  • J2EE:全称 Java 平台企业版,是Sun公司为企业级应用推出的标准平台。JavaEE是个大杂烩,包括Applet、EJB、JDBC、JNDI、Servlet、JSP等技术的标准,运行在一个完整的应用服务器上,用来开发大规模、分布式、健壮的网络应用。
  • bean:符合一定规范编写的 Java 类,不是一种技术,而是一种规范。
  • 轻量级:需要引入其他的 jar 包依赖数量和体积都比较小。另外,在使用 spring 的过程中,不需要再依赖其他组件,自己可以单独使用。
  • 框架:使用 spring 后,可以让开发更加方便,代码更加简洁,解决企业应用开发的复杂性。


spring 有2大核心:


  • IOC:是控制反转,比如之前创建对象的时候需要 new,现在则是把创建对象的过程交给 spring 管理,帮助我们创建对象。
  • AOP:是面向切面,在不修改源代码的前提下,对功能进行增强。这一点可以联想到 python 里的装饰器。


二、Spring的特点


1. 方便解耦,简化开发


通过 Spring 提供的 IOC 容器,我们可以将对象之间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。


2. AOP编程的支持


通过 Spring 提供的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP(面向对象编程) 实现的功能可以通过 AOP 轻松应付。


3. 声明式事务的支持


在 Spring 中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。


4. 方便程序的测试


可以用非容器依赖的编程方式进行几乎所有的测试工作,在 Spring 里,测试不再是昂贵的操作,而是随手可做的事情。


例如:Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序。


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


Spring 不排斥各种优秀的开源框架,相反,Spring 可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如Struts、Hibernate、Hessian、Quartz)等的直接支持。


6. 降低Java EE API的使用难度


Spring 对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过 Spring 的简易封装,这些Java EE API的使用难度大为降低。


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


Spring 的源码设计精妙、结构清晰、匠心独运,处处体现着大师对 Java 设计模式灵活运用以及对Java技术的高深造诣。Spring 框架源码无疑是 Java 技术的最佳实践范例。如果想在短时间内迅速提高自己的 Java 技术水平和应用开发水平,学习和研究 Spring 源码将会使你收到意想不到的效果。


二、入门案例


1. 下载spring


进入 spring 官网,可以看到目前最新的版本是5.3.8。


下载地址,找到对应版本进行下载。


1268169-20210626064702237-1787477721.png


下载完后,正常解压即可。


1268169-20210626064920282-1728034403.png


2. idea新建Project


创建普通的 java 工程即可。


1268169-20210626065134926-689998840.png


点击下一步,可以选择一个模板。


1268169-20210626065320934-863839688.png


输入完项目名称,点击 finish 完成创建。


1268169-20210626065458931-2069251491.png


3. 导入spring5的相关jar包


这里是 spring5 的模块结构图。


1268169-20210626065724188-168899749.png


但是目前的入门案例不需要用到这么多依赖,只要核心的即可。


1268169-20210626065831685-1046850056.png


现在打开刚才解压出的spring下的 lib 文件夹,4个 jar 包赫然在目。


1268169-20210626070052099-1159815874.png


另外,还需要一个日志的包,这个到网上下载一下即可,地址,下载commons-logging-1.2-bin.zip


在项目里建一个文件夹lib,把上面4个,加上1个日志,5个jar包 复制到这里。


1268169-20210626070823446-1804933327.png


点击 File 下的 Project Structure,按照图示导入lib下的jar 包,点击 apply 即可。


1268169-20210626070929295-474395778.png1268169-20210626071111913-986841550.png



4. 编写代码


使用spring的方式创建对象。先写一个 User 类以供使用。


package com.pingguo.spring5;
public class User {
    public void add() {
        System.out.println("add...");
    }
}


spring有多种方法创建对象,比如 配置文件、注解,入门案例使用配置文件演示。


创建配置文件


配置文件是 xml 格式。


右击 src - new - XML Configuration File - Spring Config,完成创建,在此文件里完成对象配置。


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--配置User对象-->
    <bean id="user" class="com.pingguo.spring5.User"></bean>
</beans>


通过bean 标签来创建对象的,固定写法。这里的 id 是个别名,供获取对象使用。

测试代码


package com.pingguo.spring5.testdemo;
import com.pingguo.spring5.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring5 {
    @Test
    public void testAdd(){
        // 加载配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        // 获取配置文件创建的对象
        User user =  context.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }
}


如果获取对象正常,可以看到打印对象的地址,还可以看到调用 add() 方法的输出。


1268169-20210626073121233-1759261347.png

结果正确。

相关文章
|
10天前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
Spring Security 入门
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
24 1
|
2月前
|
监控 Java 数据安全/隐私保护
如何用Spring Boot实现拦截器:从入门到实践
如何用Spring Boot实现拦截器:从入门到实践
52 5
|
2月前
|
Java Maven Spring
Spring 小案例体验创建对象的快感
本文介绍了如何在IDEA中创建一个Spring项目,包括项目创建、配置pom.xml文件以引入必要的依赖、编写实体类HelloSpring及其配置文件applicationContext.xml,最后通过测试类TestHelloSpring展示如何使用Spring的bean创建对象并调用方法。
38 0
|
3月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
39 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
3月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
44 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
5月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
5月前
|
缓存 Java Spring
Spring缓存实践指南:从入门到精通的全方位攻略!
【8月更文挑战第31天】在现代Web应用开发中,性能优化至关重要。Spring框架提供的缓存机制可以帮助开发者轻松实现数据缓存,提升应用响应速度并减少服务器负载。通过简单的配置和注解,如`@Cacheable`、`@CachePut`和`@CacheEvict`,可以将缓存功能无缝集成到Spring应用中。例如,在配置文件中启用缓存支持并通过`@Cacheable`注解标记方法即可实现缓存。此外,合理设计缓存策略也很重要,需考虑数据变动频率及缓存大小等因素。总之,Spring缓存机制为提升应用性能提供了一种简便快捷的方式。
64 0
|
5月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
345 0