【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

结果正确。

相关文章
|
3月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
1月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
26 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
1月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
24 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
3月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
3月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
3月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
3月前
|
缓存 Java Spring
Spring缓存实践指南:从入门到精通的全方位攻略!
【8月更文挑战第31天】在现代Web应用开发中,性能优化至关重要。Spring框架提供的缓存机制可以帮助开发者轻松实现数据缓存,提升应用响应速度并减少服务器负载。通过简单的配置和注解,如`@Cacheable`、`@CachePut`和`@CacheEvict`,可以将缓存功能无缝集成到Spring应用中。例如,在配置文件中启用缓存支持并通过`@Cacheable`注解标记方法即可实现缓存。此外,合理设计缓存策略也很重要,需考虑数据变动频率及缓存大小等因素。总之,Spring缓存机制为提升应用性能提供了一种简便快捷的方式。
50 0
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
178 0