Spring快速入门-阿里云开发者社区

开发者社区> 兮动人> 正文

Spring快速入门

简介: Spring快速入门
+关注继续查看

在这里插入图片描述

1. Spring 创建对象和传统方式(new)创建对象的区别

  • 业务层调用dao层
  • 传统方式一般就是创建 userDao 接口去调用 UserDaoImpl 实现类

在这里插入图片描述

  • 使用 Spring 优势的解耦合特点:
  • 创建 xml 配置文件,把 UserDaoImpl 实现类去按全限定类名(或称包名) 配置到 xml 文件中
  • 通过 id 来标识这个类的全限定类名,根据 id标识 获取这个包名
  • Spring 框架的作用:读取xml配置文件,从而获得全包名帮你创建对象
  • 通过 Spring 提供的客户端调用getBean()的方法传入id标识,而通过id标识去获取你指定想要的对象
  • Spring要做两件事:

    1. 读取xml配置文件
    2. 根据传入的id标识获得全限定名,拿到后返回Spring框架内部,通过反射创建Bean对象,并把对象返回给调用者(userDao)

在这里插入图片描述

2. Spring程序开发步骤

概述

  • 导入框架用到的 jar 包,导入 Spring 用到了坐标(Maven开发)
  • 编写 userDao 接口,userDaoImpl 实现类
  • 创建 xml 配置文件
  • 把 userDaoImpl 产生对象的包名配置到 xml 文件 当中
  • 通过 Spring 客户端getBean(id标识),返回指定的对象,这样就是找Spring容器要对象,而不是new对象了

实现
在这里插入图片描述

  1. 导入 Spring 开发的基本包坐标
<properties>  
<spring.version>5.0.5.RELEASE</spring.version>
</properties>

<dependencies>
    <!--导入spring的context坐标,context依赖core、beans、expression-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

或直接引入:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
</dependencies>
  1. 编写Dao接口实现类
package com.xdr630.dao;

public interface UserDao {
    public void save();
}
package com.xdr630.dao.impl;

import com.xdr630.dao.UserDao;

public class UserDaoImpl implements UserDao {

    @Override
    public void save() {
        System.out.println("save running......");
    }
}
  1. 创建Spring核心配置文件
  • 在类路径下(resources)创建applicationContext.xml配置文件,文件名可以自定义,一般为applicationContext或beans
  1. 在Spring 配置文件中配置UserDaolmpl
<bean id="userDao" class="com.xdr630.dao.impl.UserDaoImpl"></bean>
  1. 使用Spring的API获得 Bean 实例
package com.xdr630.demo;

import com.xdr630.dao.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserDaoDemo {
    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao = (UserDao) app.getBean("userDao");
        userDao.save();
    }
}

在这里插入图片描述

3. 知识要点

  • Spring的开发流程
  1. 导入坐标
  2. 创建Bean
  3. 创建applicationContext.xml
  4. 在配置文件中进行配置
  5. 创建ApplicationContext对象getBean

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何使用 Arthas 定位 Spring Boot 接口超时
公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。
3 0
Spring Cloud 终于大改版?为什么要用日期来做版本号?
Spring Cloud终于改了 最近Spring Cloud把版本号从A到Z的伦敦地铁站,改为以日期命名了。
5 0
Spring Boot 集成 JUnit5,更优雅单元测试!
JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。
3 0
4 大软件架构,你们公司用哪种?
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目
3 0
【深入浅出版】Java全套学习路线规划及配套视频和笔记
 工作难找,入坑不易,请根据自己的情况再做决定,且行且珍惜!        大家都说近两年疫情导致行情不太好,确实比起往年工作机会是少了很多,但我觉得事事是相对的。我入坑比较早,好几年了,各种各样的人和事都遇到过,也面试过很多人!
3 0
深度剖析Saga分布式事务
saga是分布式事务领域非常重要的事务模式,特别适合解决旅游订票等长期事务。本文将深入分析saga事务的设计原理和解决订票问题的最佳实践。
5 0
ElasticSearch 面试 4 连炮,你顶得住么?
es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?
4 0
再见 Xshell ,这款开源的终端工具逼格更高
作为后端开发,我们经常与Linux系统打交道,避免不了要使用Xshell等终端工具进行远程管理。最近发现了一款主题丰富、功能强大的酷终端工具Tabby,推荐给大家!
3 0
撸一个 IDEA 防沉迷插件
当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。 从寝室到机房,从机房到图书馆,
3 0
+关注
兮动人
世间味趣亦如此,万物且去轮浮生。
133
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载