依赖:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1..RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1..RELEASE</version>
</dependency>

学生案例一:

package cn. spring. entity;
/**
* Bean
*/
public class StudentBean {
//普通属性
private Integer stu_ id;
private String stu_ name;|
//方法
public void say(){
System. out. print1n("大家好,本人编号: "+stu_ id+"\t名字: "+stu_ name);
public Integer getStu_ id() {
return stu_ _id;
}
public void setStu_ id(Integer stu_ id) {
this.stu_ id = stu_ _id;
}
public class SpringIOC {
@Test
public void iocTest(){
//步骤一:加载配置文件applicationContext. xmL
ApplicationContext ctx=new ClassPathXm1ApplicationContext( configLocation: " applicationContext . xm1");
//步骤二:获取bean
StudentBean bean=(StudentBean) ctx. getBean( s: "studentBean");
bean.say();
}

教师案例二:

< ?xml version="1. 0" encoding="UTF-8"?>
<beans xmIns= "http://www. springfr amework . 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相当于当前bean唯一标识
class是bean的全路径
property注入bean中的属性
必须封装
--> <bean id="teacherBean
class="cn. spring . entity.TeacherBean">
property name="t_ _id" value= "" ></ property>
<property name="t_ name" value=" 刘磊" ></property>
</bean>
</beans>
* Bean
public class StudentBean {
//普通属性
private Integer stu_ id;
private String stu_ name;
//域属性
private TeacherBean teacherBean;
public TeacherBean getTeacherBean() {
return teacherBean ; ,
public void setTeacherBean(TeacherBean teacherBean) {
this . teacherBean = teacherBean;
|}

打印机案例三:

/*
Ink 墨盒接口
*/
public interface Ink {
//获取墨盒颜色
public String getInk();
} /
**
*彩色墨盒实现类
*/
public class ColorInk implements Ink{
@Override
public String getInk() {
return "彩色";
} /**
*黑白墨盒实现类
*/
public class GrayInk implements Ink{
public String getInk() {
return” 黑白";
} /**
*纸张接口
/
public interface Paper {
//获取纸张大小
public String getPaper();|
} /**
* A4实现类.
*/
public class A4Paper implements Paper{
public String getPaper() {
return "A4";
}
} /**
*B5实现类
*/
public class B5Paper implements Paper{
public String getPaper(){
retuen "B5";
}
} /**
*打印机类
*/
public class Printer {
//纸张对象
private Paper paper;
//墨盒对象
private Ink ink;
//打印方法
public void print(){
System. out . print1n("您正在使用: "+paper . getPaper( )+"纸张和"
}
public Paper getPaper() {
} <!--注入彩色墨盒
Bean的注入都是实现类-->
<bean id="colorInk" class="cn. spring。print. ink. ColorInk"></bean>
<bean id="grayInk" class="cn. spring. print . ink . GrayInk"></bean>
<!--注入纸张-->
<bean id="a4Paper" class="cn. spring . print.paper.A4Paper"></bean>
bean id="b5Paper" class="cn. spring. print. paper. B5Paper"></bean>
<!--打印机-->
<bean id="printer" class="cn. spring. print. printer . Printer">|
<!--将纸张和墨盒组合起来-->
property name="paper" ref= "b5Paper"></property>
<property name="ink" ref=" grayInk" ></ property>
</bean> public class PrinterTest {
public static void main(String[] args) {
//步骤- :加载配置文件
ApplicationContext context=new ClassPathXmlApplicationContext( configLocation: " applicationContext . xml");
//调用bean
Printer printer = (Printer) context. getBean( s: "printer");
printer . print();|
}

Spring框架

Spring是最受欢迎的轻量级的企业级Java应用程序开发框架;Spring框架的 核心特性可以用于开发任何Java应用程序,但是在JavaEE平台上构建Web应 用程序是需要扩展的。Spring框架的目标是使J2EE开发变得更容易使用,通 过启用基于POJO编程模型来促进良好的编程实践
Spring核心概念

I控制反转IoC:

Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

依赖注入DI:

DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。

Spring框架加案例的更多相关文章

  1. spring框架加载完成后执行上下文刷新事件(ContextRefreshedEvent)

    目前spring框架是j2ee比较常用的项目开发技术,只需在web.xml文件中进行少许配置即可,代码如下所示:<!--spring的配置文件--><context-param> ...

  2. 1.Spring框架入门案例

    一.简单入门案例 入门案例:IoC 1.项目创建与结构 2.接口与实现类 User.java接口 package com.jd.ioc; /** * @author weihu * @date 201 ...

  3. SSM之Spring框架--->>墨盒案例

    分析: 程序中包括打印机(Printer).墨盒(Ink).和纸张(Paper).三类组件 首先创建一个新项目文件Spring_Box 我们来定义墨盒和纸张的接口类 墨盒接口Ink.java文件内容如 ...

  4. Spring框架学习之第2节

    传统的方法和使用spring的方法 使用spring,没有new对象,我们把创建对象的任务交给了spring的框架,通过配置用时get一下就行. 项目结构 applicationContext.xml ...

  5. Spring框架学习之第1节

    spring快速入门 ①   spring是什么? Struts是web框架(jsp/action/actionform) hibernate是orm框架(对象和关系映射框架),处于持久层 sprin ...

  6. Spring 框架 详解 (二)

    Spring的入门的程序: 1.1.1 下载Spring的开发包: spring-framework-3.2.0.RELEASE-dist.zip ---Spring开发包 * docs :sprin ...

  7. 极简SpringBoot指南-Chapter01-如何用Spring框架声明Bean

    仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started ...

  8. spring框架学习笔记7:事务管理及案例

    Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...

  9. Spring 框架基础(03):核心思想 IOC 说明,案例演示

    本文源码:GitHub·点这里 || GitEE·点这里 一.IOC控制反转 1.IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理. ...

随机推荐

  1. STL源码剖析——iterators与trait编程#3 iterator_category

    最后一个迭代器的相应类型就是iterator_category,就是迭代器本身的类型,根据移动特性与实行的操作,迭代器被分为了五类: Input Iterator:这种迭代器所指的对象,不允许外界改变 ...

  2. 剑指offer33:求按从小到大的顺序的第N个丑数。

    1 题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 2 ...

  3. Scala 面向对象编程之Trait

    将trait作为接口使用 // Scala中的Triat是一种特殊的概念 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 // 在triat中可以定义抽象方 ...

  4. (转) 嵌入式 Linux 利用 udev 实现自动检测挂载U盘

    本文链接:https://blog.csdn.net/cfl927096306/article/details/95180940 udev配置文件是/etc/udev/udev.conf,也许长这样: ...

  5. 记一次构建SaaS平台项目失败后的反思(收集的客户需求太少,且没有区分重点,闭门造车。技术演变要渐进)

    记一次构建SaaS平台项目失败后的反思 前言: 笔者从2017年起开始着手将公司现有的软件系统改造成多租户模式,以降低整个系统的运营成本.但最后这个项目以失败告终.今天,我将对这个SaaS项目是如何走 ...

  6. babel tsc webpack

    我要用啥?js的话:babel编译+webpack模块打包ts的话:tsc编译成js+babel编译+webpack模块打包浏览器情况:如果您的浏览器支持es6所有语法那么就可以只用webpack来处 ...

  7. JDK8源码解析 -- HashMap(一)

    最近一直在忙于项目开发的事情,没有时间去学习一些新知识,但用忙里偷闲的时间把jdk8的hashMap源码看完了,也做了详细的笔记,我会把一些重要知识点分享给大家.大家都知道,HashMap类型也是面试 ...

  8. Java之协程(quasar)

    一.前面我们简单的说了一下,Python中的协程原理.这里补充Java的协程实现过程.有需要可以查看python之协程. 二.Java协程,其实做Java这么久我也没有怎么听过Java协程的东西,但是 ...

  9. Lambda 表达式动态拼接.

    背景: 项目使用EF 查询时需要手动判断条件写.觉得太麻烦就Google 如何动态生成Linq.最后找到了 System.Linq.Dynamic.Core. 这个东西. Scott Guthrie ...

  10. vue+iview tables多个分页实现

    如果一个页面有多个分页那么可以把每个page和pageSize放到一个对象中,如下: dataList: { name: 'dataList', // 方便取到dataList对象 id: null, ...