1.Spring入门

一、Spring入门
1.Spring 入门
Spring 整体框架
在这里插入图片描述

什么是IOC?
IOC:Inversion of Control(控制反转),即将对象的创建权反转给(交给)spring。

spring包含的文件
docs:Spring的开发规范和API;
libs:Spring开发的jar和源码;
schema:Spring的配置文件的约束。
在这里插入图片描述

Spring环境搭建:以创建Web项目为例
step1:
在这里插入图片描述
在这里插入图片描述
step2:在WebContent\WEB-INF\lib包下添加几个jar包:
在这里插入图片描述
step3:创建如下几个类和接口,
在这里插入图片描述
UserDAO接口:

package com;public interface UserDAO {public void save();
}

UserDAOImpl实现类:

package com;public class UserDAOImpl implements UserDAO{public void save() {System.out.println("UserDAOImpl...实现了");}
}

UserDAOImplHello实现类:

package com;public class UserDAOImplHello implements UserDAO{public void save() {System.out.println("UserDAOImplHello...实现了");}
}

springDemo1测试类:

package com;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class springDemo1 {@Testpublic void demo1() {    //用于普通测试UserDAO userdao = new UserDAOImpl();userdao.save();}@Testpublic void demo2() {    //用于Spring测试//创建spring工厂ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring_first.xml");UserDAO userdao = (UserDAO) applicationContext.getBean("userdao");userdao.save();}
}

step4:在src目录下创建配置文件,
在这里插入图片描述
在这里插入图片描述

<?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"><!--  spring的入门配置 --><bean id = "userdao" class = "com.UserDAOImplHello"></bean></beans>

step5:运行测试类springDemo1中的demo2,得到如下输出:
在这里插入图片描述
此时修改配置文件中的代码,将下列代码中的com.UserDAOImpl修改成com.UserDAOImplHello,

     <!--  spring的入门配置 --><bean id = "userdao" class = "com.UserDAOImpl"></bean>

再次运行测试类springDemo1中的demo2,得到如下输出:
在这里插入图片描述

2.IOC和DI的区别
IOC:控制反转,将对象的创建权反转给Spring。
DI:依赖注入,前提必须要有IOC的环境,Spring管理这个类的时候,将类的依赖属性注入(也可以说设置)进来。

面向对象的几种特性
  依赖:类之间相互调用,则具有依赖的关系;
  继承:类之间继承;
  聚合:分为“紧密聚合”和“松散聚合”之分。

举例
在UserDAOImpl类中添加属性name,并在该类中save()方法中使用,则name与save()函数之间建立起依赖关系,代码如下:

public class UserDAOImpl implements UserDAO{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void save() {System.out.println("UserDAOImpl...实现了"+name);}
}

由于接口中没有属性name,所以如果以常规的方式只能通过创建UserDAOImpl类对象来对name进行设置,比较繁琐,代码如下:

	@Testpublic void demo1() {UserDAOImpl userdao = new UserDAOImpl();   //创建userdaoImpl类对象userdao.setName("张三");userdao.save();}

但是,使用我们的Spring框架,则不需要如此麻烦,只需要在配置文件里进行如下设置即可:

     <!--  spring的入门配置 --><bean id = "userdao" class = "com.UserDAOImpl"><property name = "name" value = "张三"/></bean>

再运行如下代码:

	@Testpublic void demo2() {//创建spring工厂ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring_first.xml");UserDAO userdao = (UserDAO) applicationContext.getBean("userdao");userdao.save();}

输出结果为:
在这里插入图片描述

分析:这里Spring可以将UserDAOImpl类所依赖的属性自动设置进来,只需要在配置文件里进行设置即可。设置属性值的过程就叫做DI,Spring帮我们创建UserDAOImpl类的时候,发现该类里边有一个属性name(也可称之为“依赖”),通过修改配置文件,则将属性设置进来。

3.工厂类的概述
Spring的工厂类:
  BeanFactory:老版本的工厂类;
  ApplicationContext:新版本的工厂类,现在一般使用ApplicationContext工厂类

BeanFactory与ApplicationContext的区别:
在这里插入图片描述
如上图所示,ApplicationContext接口间接地继承了BeanFactory接口,之后ClassPathXmlApplicationContext实现类和FileSystemXmlApplicationContext实现类又间接地实现了ApplicationContext接口。

ClassPathXmlApplicationContext类与FileSystemXmlApplicationContext类的使用区别:
ClassPathXmlApplicationContext类创建工厂对象时,配置文件放(spring_first.xml)在该project目录下的src文件下:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring_first.xml");

FileSystemXmlApplicationContext类创建工厂对象时,配置文件(spring_first.xml)放在硬盘路径下:

ApplicationContext applicationContext = new FileSystemXmlApplicationContext("C:\\spring_first.xml");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/250897.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

spring入门例子

Hello World入门 2.5.1、准备开发环境和运行环境&#xff1a; ☆开发工具&#xff1a;eclipse ☆运行环境&#xff1a;tomcat6.0.20 ☆工程&#xff1a;动态web工程&#xff08;springmvc-chapter2&#xff09; ☆spring框架下载&#xff1a; spring-framework-3.1.1.RELEASE-w…

Spring入门

Spring框架的设计理念 Spring的骨骼架构 Spring总共有十几个组件&#xff0c;但真正核心的组件只有几个&#xff0c;下面是Spring框架的总体架构图 图1 .Spring 框架的总体架构图 从图中可以看出&#xff0c;Spring框架中的核心组件只有三个&#xff1a;Context&#xff0c;Co…

【Spring入门】

Spring01loc&DI 概念&#xff1a;Spring是一种分层的Javaee、Javase应用full-stack&#xff08;全栈&#xff09;轻量级开源框架&#xff0c;以ioc&#xff08;反转控制&#xff09;和aop&#xff08;面向切面编程为内核&#xff09;&#xff0c;提供了SpringMVC和SpringJD…

GIT | 日常命令查阅表

最近公司代码管控比较乱&#xff0c;有天就利用分支进行了代码梳理&#xff0c;当时就遇到一些困惑&#xff0c;抽空就把git 再学了一下。 以前我是用git命令的&#xff0c;但是敲命令对我来说还是有点麻烦&#xff08;主要是git 功力不够&#xff09;&#xff0c;看到有同事用…

Spring入门篇

第1章 概述 本章对课程的情况进行介绍&#xff0c;并介绍框架和Spring概况。 1-1 Spring入门课程简介 (05:56) 1-2 Spring概况 (09:39) 1-3 Spring框架 (04:24) 第2章 Spring IOC容器 介绍Spring IOC容器的基本概念和应用 2-1 IOC及Bean容器 (20:18) 容器中的对象就是Bean…

spring入门总结

spring入门总结 一、spring介绍1、spring是什么2、理念&#xff1a;3、Spring优点&#xff1a;4、缺点5、主要内容&#xff1a; 二、IOC&DI1、使用IOC创建对象的三种方法a、无参构造方法创建b、通过有参构造方法来创建c、通过工厂方法来创建对象 2、配置文件详解3、依赖注入…

Spring 入门

引自&#xff1a;http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 2005 年 8 月 18 日 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中&#xff0c;将开始学习如何用 Spring 技术构建轻量级的、强…

Spring入门须知

Hi ~o(*&#xffe3;▽&#xffe3;*)ブ大家好呀&#xff01; 我是【小阿飞_】&#xff0c;我又来给大家分享知识啦&#x1f61c; 今天分享的是spring入门需要理解的一些概念和一些基础的使用操作&#xff0c;有哪里讲解的不好还请大佬们评论区多多指点&#x1f61c; 本期精彩&…

Spring入门基础

目录 1.Spring的相关概念 2.Spring的核心与设计思想 3.Spring创建与使用 4.更简单地去使用Spring 5.Bean的作用域与生命周期 1.Spring相关概念 1.1 什么是Spring 我们通常所说的 Spring 指的是 Spring Framework&#xff08;Spring 框架&#xff09;&#xff0c;它是⼀个…

Spring入门程序

目录 一、Spring概述二、Spring的体系结构三、Spring的核心容器四、实现步骤 一、Spring概述 spring是当前主流的JavaWeb框架&#xff0c;它是为了解决应用开发复杂性问题而产生的。对于一个Java应用程序员来说&#xff0c;掌握spring框架的使用&#xff0c;是我们基本的一项技…

Spring入门这一篇就够了

前言 前面已经学习了Struts2和Hibernate框架了。接下来学习的是Spring框架…本博文主要是引入Spring框架… Spring介绍 Spring诞生&#xff1a; 侵入式概念 Spring是一种非侵入式的框架… 侵入式 非侵入式 松耦合 前面我们在写程序的时候&#xff0c;都是面向接口编程&#xff…

Spring入门,看这篇就够了

Spring入门&#xff0c;看这篇就够了 文章目录 Spring入门&#xff0c;看这篇就够了一、 初识Spring二、Spring Framework系统架构三、核心概念1.IoC&#xff08;inversion of control&#xff09;控制反转2.Bean3.DI&#xff08;dependency injection&#xff09;依赖注入 四、…

Spring 入门教程

Spring 入门教程 1、参考资料 尚硅谷-Spring5框架最新版教程&#xff08;idea版&#xff09;雷丰阳spring、springmvc、mybatis、spring一站式学习 项目地址&#xff1a;Oneby / spring-learn 2、Spring 概述 2.1、Spring 框架概述 Spring 是轻量级的开源的 JavaEE 框架 Sp…

一文学会Spring,Spring最简单的入门教程(万字好文)

1.Spring概述 1.1 Spring框架是什么 ​ Spring是与2003年兴起的一个轻量级的Java开发框架&#xff0c;它是为了解决企业应用开发的复杂性而创建的。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。Spring是可以在Java SE/EE中使用的轻量级开源框架。 ​ Spring的主要作用…

阿里云的内容识别技术可以实现哪些场景下的智能化应用?

阿里云的内容识别技术可以实现哪些场景下的智能化应用&#xff1f; [本文由阿里云代理商[聚搜云]撰写]   随着人工智能技术的快速发展&#xff0c;阿里云借助自身的技术和资源优势&#xff0c;开发了一种名为“内容识别”的技术。这项技术能够高效、准确地识别出图片、视频、…

装饰器模式:实现类功能的动态扩展

一&#xff0c;简介 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许在不修改原有类结构的情况下&#xff0c;给一个对象动态添加额外的职责。通常情况下&#xff0c;扩展一个类的功能我们首先会想到用继承方式来实现&#xff0c…

One2Multi Graph Autoencoder for Multi-view Graph Clustering

One2Multi Graph Autoencoder for Multi-view Graph Clustering | Proceedings of The Web Conference 2020 (acm.org) 目录 Abstract 1 Introduction 2 Model 2.1 Overview 2.2 One2Multi Graph Convolutional Autoencoder Informative graph convolutional encoder M…

linux常见的二十多个指令

目录 一、指令的概念 二、28个常见的指令 ⭐2.1 ls指令 ⭐2.2 pwd指令 ⭐2.3 cd指令 ⭐2.4tree指令 ⭐2.5 mkdir指令 ⭐2.6 touch指令 ⭐2.7 rmdir指令 ⭐2.8 rm指令 ⭐2.9 clear指令 ⭐2.10 man指令 ⭐2.11 cp指令 ⭐2.12 mv指令 ⭐2.13 cat指令&#xff08;适…

Python画五角星(turtle初识)

Python可以做很多事情&#xff0c;主要归功于python下的各种模块。画图也不例外&#xff0c;通过简单地turtle模块&#xff0c;可以画出各种图案。 首先&#xff0c;使用python画图&#xff0c;需要安装turtle模块。在控制台输入pip install turtle执行 import turtle turtle.…

用python的turtle画五角星

最近开始学python&#xff0c;做作业的时候遇到画五角星并填充颜色。网上搜到的方法是画五条直线&#xff0c;但是作业要求的图形是这样 #用循环结构画五角星 import turtle from turtle import *turtle.delay(2) #定义一个画五角星的函数 def stardraw(start_position,side)…