【Spring】(一)Spring入门&Hello Spring

简介: 【Spring】(一)Spring入门&Hello Spring

文章目录


一、Spring 简介

1、Spring 概述

2、Spring Framework 下载

3、Spring 框架组成


二、Spring 优点

三、Spring 两大核心技术

四、Hello Spring

五、思考


一、Spring 简介


1、Spring 概述


(1)Spring 是一款开源的免费框架,是一个轻量级控制反转(IOC)和面向切面(AOP)的 JAVA EE 框架,轻量级是指不依赖于容器就能运行的。Spring 框架最初的作者是Rod Jahnson,现在已经被Pivotal Software公司收购,而Pivotal Software公司的东家正是大名鼎鼎的虚拟化提供商VMWare。


(2)一般所谓的 Sping 指的仅仅是Spring旗下的spring framework这一款产品,在 Spring 被 Pivotal


Software 公司接手之后,相继研发出了多款产品,其中的Spring Boot、Spring Could已经成为了当前互联网环境下的佼佼者。


  • Spring Boot是一个整合Spring各项功能的中间件,用于快速的开发Spring应用。
  • Spring Cloud是为了应对日益增长的业务需求,而开发出的一套完整的基于微服务的分布式解决方案。
  • Spring Framework、Spring Boot、Spring Cloud这三款框架的依赖是递增的,也就是说Spring - Could的基础是Spring Boot。
  • Spring Boot的基础是Spring Framework,学习顺序应该是Spring Framework>Spring Boot>Spring Cloud。


(3)Spring 框架是使用最广泛的轻量级 JAVA EE 框架之一,它以 IOC、AOP 为主要思想,能够协同 Struts2、Hibernate、WebWork、JSF、iBatis 等众多的框架。


2、Spring Framework 下载


(1)Spring的官网是https://spring.io,通过http://repo.spring.io/release/org/springframework/spring可以下载Spring Framework(以后简称Spring)的开发包,如版本Spring 5.1.6,下载好jar包之后解压出的目录结构如下:


  • docs:开发文档
  • schema:spring框架对于xml文件的校验采用了schema的方式,该文件夹中是schema文件。
  • libs:jar包,保存了spring框架的所有jar包。
  • 注意:libs中保存的jar包分为3类,分别是文档jar包,源代码jar包,和编译之后的class文件jar包,我们以前导入的其他框架jar包都是最后一种class文件jar包。


(2)spring中常用jar包:


  • Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现
  • Spring Aspects:Spring提供的对AspectJ框架的整合
  • Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。
  • Spring Context:在基础IOC功能上提供扩展服务。
  • Spring Context Support:Spring context的扩展支持,用于MVC方面。
  • Spring Core:Spring的核心工具包
  • Spring expression:Spring表达式语言
  • Spring Instrument:Spring对服务器的代理接口
  • Spring Instrument Tomcat:Spring对tomcat连接池的集成
  • Spring JDBC:对JDBC 的简单封装
  • Spring JMS:为简化jms api的使用而做的简单封装
  • Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
  • Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
  • Spring test:对JUNIT等测试框架的简单封装
  • Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
  • Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
  • Spring webmvc:包含SpringMVC框架相关的所有类


3、Spring 框架组成


Spring 是个轻量级的框架,但是它的功能却很庞大,String 框架的所有组成如图所示。


image.png


二、Spring 优点


  • 低侵入式设计
  • 独立于各种应用服务器
  • 依赖注入特性将组件关系透明化,降低了耦合度
  • 面向切面编程特性允许将通用任务进行集中式处理
  • 与第三方框架的良好整合


三、Spring 两大核心技术


  • 控制反转(IoC:Inversion of Control ) /依赖注入(DI:Dependency Injection )
  • 面向切面编程(AOP:Aspect Oriented Programming)


四、Hello Spring


1、导入jar包,代码如下:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.3.9.RELEASE</version>
</dependency>


2、在pojo包下创建实体类,代码如下:

public class Hello {
    private String name;
    public Hello() {
    }
    public Hello(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void show(){
        System.out.println("Hello,"+name);
    }
    @Override
    public String toString() {
        return "Hello{" +
                "name='" + name + '\'' +
                '}';
    }
}


3、在resources包下编写Spring的配置文件,代码如下:

<?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">
    <!--bean就是一个java对象,由Spring管理和创建-->
    <bean id="hello" class="pojo.Hello">
        <property name="name" value="Spring"/>
    </bean>
    <!--bean就是一个java对象,由Spring管理和创建-->
    <bean id="hello2" class="pojo.Hello">
        <property name="name" value="WestOS"/>
    </bean>
    <!--// Hello hello2 = new Hello();-->
    <!--// hello2.setName (WestOS)-->
</beans>


4、在test包下编写测试类,代码如下:

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloTest {
    @Test
    public void test(){
        //解析beans.xml配置文件,生产管理相应的Bean对象;
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        //通过Bean得到这个对象的实体
        Hello hello = (Hello)context.getBean("hello2");
        hello.show();
    }
}


五、思考


Hello对象是如何创建的?


  • Hello对象是由Spring创建的


  • beans.xml ——> 管理bean,Java对象,Spring就像一个容器,存放了许多的对象


  • 解析配置文件
  • 通过反射创建对象并设置值


Hello对象的属性是如何设置的?


  • Hello对象的属性是由Spring容器设置的


这个过程就叫控制反转:IOC


  • 控制:谁来控制对象的创建?


原来:程序猿来控制

使用Spring后:Spring来控制


  • 反转:程序本身不创建对象了,编程被动接收对象

依赖注入,DI:本质就是利用set方式来注入的

IOC是一种编程思想,由主动的编程转到被动的接收


目录
相关文章
|
1月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
351 2
|
6月前
|
人工智能 Java API
Spring AI 实战|Spring AI入门之DeepSeek调用
本文介绍了Spring AI框架如何帮助Java开发者轻松集成和使用大模型API。文章从Spring AI的初探开始,探讨了其核心能力及应用场景,包括手动与自动发起请求、流式响应实现打字机效果,以及兼容不同AI服务(如DeepSeek、通义千问)的方法。同时,还详细讲解了如何在生产环境中添加监控以优化性能和成本管理。通过Spring AI,开发者可以简化大模型调用流程,降低复杂度,为企业智能应用开发提供强大支持。最后,文章展望了Spring AI在未来AI时代的重要作用,鼓励开发者积极拥抱这一技术变革。
2503 71
Spring AI 实战|Spring AI入门之DeepSeek调用
|
7月前
|
安全 Java 数据库
Spring Security 实战指南:从入门到精通
本文详细介绍了Spring Security在Java Web项目中的应用,涵盖登录、权限控制与安全防护等功能。通过Filter Chain过滤器链实现请求拦截与认证授权,核心组件包括AuthenticationProvider和UserDetailsService,负责用户信息加载与密码验证。文章还解析了项目结构,如SecurityConfig配置类、User实体类及自定义登录逻辑,并探讨了Method-Level Security、CSRF防护、Remember-Me等进阶功能。最后总结了Spring Security的核心机制与常见配置,帮助开发者构建健壮的安全系统。
449 0
|
4月前
|
前端开发 Java API
基于 Spring Boot 3 与 React 的 Java 学生信息管理系统从入门到精通实操指南
本项目基于Spring Boot 3与React 18构建学生信息管理系统,涵盖前后端开发、容器化部署及测试监控,提供完整实操指南与源码,助你掌握Java全栈开发技能。
234 0
|
5月前
|
Java 关系型数据库 MySQL
【Spring】【事务】初学者直呼学会了的Spring事务入门
本文深入解析了Spring事务的核心概念与使用方法。Spring事务是一种数据库事务管理机制,通过确保操作的原子性、一致性、隔离性和持久性(ACID),维护数据完整性。文章详细讲解了声明式事务(@Transactional注解)和编程式事务(TransactionTemplate、PlatformTransactionManager)的区别与用法,并探讨了事务传播行为(如REQUIRED、REQUIRES_NEW等)及隔离级别(如READ_COMMITTED、REPEATABLE_READ)。
451 1
|
5月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
652 0
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
7月前
|
存储 安全 Java
Spring Security 入门与详解
Spring Security 是 Spring 框架中的核心安全模块,提供认证、授权及防护功能。本文详解其核心概念,包括认证(Authentication)、授权(Authorization)和过滤器链(Security Filter Chain)。同时,通过代码示例介绍基本配置,如 PasswordEncoder、UserDetailsService 和自定义登录页面等。最后总结常见问题与解决方法,助你快速掌握 Spring Security 的使用与优化。
1752 0
|
11月前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
693 2
Spring Security 入门

热门文章

最新文章

下一篇
oss云网关配置