Spring快速复习--开发步骤

简介: Spring快速复习--开发步骤

一、Spring回顾


Spring简介


1、Spring是轻量级的开源的JavaEE框架

JavaEE就是用java开发企业级的应用,它是一个规范和标准

Spring框架就是实现了JavaEE这个规范,所以Spring常用来开发企业级的应用

2、Spring可以解决企业应用开发的复杂性

3、Spring有两个核心部分:IOC和Aop


Spring架构


image.png


IOC


IOC(Inversion of Control):控制反转,把创建对象过程交给Spring进行管理

在一个软件系统中,对象A依赖于对象B,当对象A需要对象B的时候需要自己创建对象B,这个创建对象的控制权是掌握在对象A手中的。在引入IOC容器之后,当对象A在需要对象B的时候,由IOC容器主动创建并注入A中,从而实现了解耦。这个过程创建对象的控制权全部交给了IOC容器,这就是控制反转


DI


依赖注入

依赖注入是IOC的实现方式,前面我们说ioc是控制反转,它这个反转其实就是获得依赖对象的过程被反转了。依赖注入就是IOC在运行期间,动态地将依赖关系注入到对象之中

依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情



二、未使用Spring程序开发步骤


com.itheima.dao.UserDaoImpl
    create 方法;
    delete 方法;
    update 方法;
    select 方法;
com.itheima.service.UserServiceImpl
    //通过 new 一个 UserDaoImpl 对象来使用
    UserDao userDao = new UserDaoImpl();

在业务层调用持久层的方法时,需要先new持久层的对象,然后调用持久层方法进而操作数据库。1`1

未使用Spring之前都是需要什么对象就new什么对象,这样也能做,不足点是耦合性太强。

怎么解耦呢?

应天命而产生。 现指适应时机而产生

Spring框架就应运而生就出来了,它可以让对象都在一个容器里,需要的时候直接通过spring的api从容器中获取

Spring框架是怎么让对象都在容器里的呢?

学习过Spring框架后,被放在容器里的对象就成为bean

前面的学习是通过配置文件的形式以<bean>标签来把对象放到容器里

是通过xml配置文件的形式用特殊的标签,指定对象的全类名和id(id是用来唯一标识的),Spring框架通过id获取Bean的全类名,之后通过java中的反射机制创建对象

image.png


三、使用Spring程序开发步骤


  1. 通过maven导Spring相关的包
  2. 编写dao接口和实现类
  3. 创建Spring核心配置文件
  4. 在spring配置文件中配置UserDaoImpl
  5. 使用Spring的API获得Bean实例


1、通过maven导Spring相关的包


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.heima</groupId>
    <artifactId>spring_ioc</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
    </dependencies>
</project>


2、编写dao接口和实现类


public interface UserDao {
    void save();
}

实现类

package com.heima.impl;
import com.heima.UserDao;
public class UserDaoImpl implements UserDao {
    @Override
    public void save() {
        System.out.println("save running.......");
    }
}


3、创建Spring核心配置文件


image.png


4、在spring配置文件中配置UserDaoImpl


<?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 id="userDao" class="com.heima.impl.UserDaoImpl">
    </bean>
</beans>


5、使用Spring的API获得Bean实例


这里new的ClassPathXmlApplicationContext其实就相当于spring的客户端对吧,

之后通过spring客户端api获取配置文件中的对象,从而调用方法


package com.heima.demo;
import com.heima.UserDao;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserDaoDemo {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("application.xml");
        UserDao userDao = (UserDao) app.getBean("userDao");
        userDao.save();
    }
}

相关文章
|
4天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
363 5
|
15天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
15天前
|
Java 数据库连接 Maven
Spring基础1——Spring(配置开发版),IOC和DI
spring介绍、入门案例、控制反转IOC、IOC容器、Bean、依赖注入DI
Spring基础1——Spring(配置开发版),IOC和DI
|
22天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
52 2
|
24天前
|
NoSQL 前端开发 Java
使用 Spring Boot + Neo4j 实现知识图谱功能开发
在数据驱动的时代,知识图谱作为一种强大的信息组织方式,正逐渐在各个领域展现出其独特的价值。本文将围绕使用Spring Boot结合Neo4j图数据库来实现知识图谱功能开发的技术细节进行分享,帮助读者理解并掌握这一技术栈在实际项目中的应用。
93 4
|
26天前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
97 6
|
26天前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
81 5
|
27天前
|
Java Spring 人工智能
AI 时代浪潮下,Spring 框架异步编程点亮高效开发之路,你还在等什么?
【8月更文挑战第31天】在快节奏的软件开发中,Spring框架通过@Async注解和异步执行器提供了强大的异步编程工具,提升应用性能与用户体验。异步编程如同魔法,使任务在后台执行而不阻塞主线程,保持界面流畅。只需添加@Async注解即可实现方法的异步执行,或通过配置异步执行器来管理线程池,提高系统吞吐量和资源利用率。尽管存在线程安全等问题,但异步编程能显著增强应用的响应性和效率。
31 0
|
27天前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
45 0
|
27天前
|
Java Spring API
Spring框架与GraphQL的史诗级碰撞:颠覆传统,重塑API开发的未来传奇!
【8月更文挑战第31天】《Spring框架与GraphQL:构建现代API》介绍了如何结合Spring框架与GraphQL构建高效、灵活的API。首先通过引入`spring-boot-starter-data-graphql`等依赖支持GraphQL,然后定义查询和类型,利用`@GraphQLQuery`等注解实现具体功能。Spring的依赖注入和事务管理进一步增强了GraphQL服务的能力。示例展示了从查询到突变的具体实现,证明了Spring与GraphQL结合的强大潜力,适合现代API设计与开发。
48 0