Spring框架加案例
依赖:
<!-- 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框架加案例的更多相关文章
- spring框架加载完成后执行上下文刷新事件(ContextRefreshedEvent)
目前spring框架是j2ee比较常用的项目开发技术,只需在web.xml文件中进行少许配置即可,代码如下所示:<!--spring的配置文件--><context-param> ...
- 1.Spring框架入门案例
一.简单入门案例 入门案例:IoC 1.项目创建与结构 2.接口与实现类 User.java接口 package com.jd.ioc; /** * @author weihu * @date 201 ...
- SSM之Spring框架--->>墨盒案例
分析: 程序中包括打印机(Printer).墨盒(Ink).和纸张(Paper).三类组件 首先创建一个新项目文件Spring_Box 我们来定义墨盒和纸张的接口类 墨盒接口Ink.java文件内容如 ...
- Spring框架学习之第2节
传统的方法和使用spring的方法 使用spring,没有new对象,我们把创建对象的任务交给了spring的框架,通过配置用时get一下就行. 项目结构 applicationContext.xml ...
- Spring框架学习之第1节
spring快速入门 ① spring是什么? Struts是web框架(jsp/action/actionform) hibernate是orm框架(对象和关系映射框架),处于持久层 sprin ...
- Spring 框架 详解 (二)
Spring的入门的程序: 1.1.1 下载Spring的开发包: spring-framework-3.2.0.RELEASE-dist.zip ---Spring开发包 * docs :sprin ...
- 极简SpringBoot指南-Chapter01-如何用Spring框架声明Bean
仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started ...
- spring框架学习笔记7:事务管理及案例
Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...
- Spring 框架基础(03):核心思想 IOC 说明,案例演示
本文源码:GitHub·点这里 || GitEE·点这里 一.IOC控制反转 1.IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理. ...
随机推荐
- JDBC缓冲池配置druid.properties
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mytest?characterEncoding=UTF-8 ...
- redis数据库——python使用和django中使用
为什么要学redis 1.redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高 2.在内存值配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的 3.memcache ...
- JS实现可用滑块滑动的缓动图
尝试模仿京东的"发现好货"模块的可用滑块滑动的缓动图 JS代码 function $(id) { return document.getElementById(id); } //缓 ...
- Scala Actor入门
介绍 Scala的Actor类似于Java中的多线程编程.但是不同的是,Scala的Actor提供的模型与多线程有所不同.Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争 ...
- Yii2 redis 使用方法
/** * 基于 yii2.0 redis使用方法 *///项目根目录命令行执行 composer require --prefer-dist yiisoft/yii2-redis; //在配置文件中 ...
- 获取ApplicationContext进而获取Ioc实例方法
在正常情况下 spring管理的类可直接调用Ioc容器中的实例,但在一些特殊情况下(例如拦截器中获取dao实例),Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该B ...
- 微信小程序通讯录字母排序
微信小程序通讯录 字母排序效果: demo地址:https://github.com/PeachCoder/wechat-contacts
- javascript -- 把按钮变成读秒倒计时
$('#btn').click(function(){ //设置按钮倒计时 $(this).addClass('disabled'); //把按钮变灰 $(this).attr('disabled', ...
- Vue路由规则中定义参数
Vue使用routerLinke定义参数的时候 路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...
- javascript_11-函数面试题
函数经典面试题 1.---------------------------- // 解析器: // 预解析 全局作用域 // 先找var .function 和参数 // 找到var和function ...