Spring_HelloWord

环境:IntelliJ 14 ; jdk1.8

 

Spring操作步骤

1.新建项目---Spring Batch2.IntelliJ会自动加载jar包3.现在就可以在src目录下写Java类文件了4.将相应的类部署在XML配置文件spring-config.xml中 (Eclipse需要手动创建,貌似名为bean.xml)5.写主程序main (右键-->Run)

HelloWord小程序

此处直接从第3步开始

3.首先定义两个接口,Person和Axe

public interface Person {public void useAxe();
}
public interface Axe {public String chop();
}

然后定义接口的实现类,Chinese和StoneAxe

public class Chinese implements Person {private Axe axe;//设值注入public void setAxe(Axe axe) {this.axe = axe;}@Overridepublic void useAxe() {System.out.println(axe.chop());}
}
public class StoneAxe implements Axe {@Overridepublic String chop() {return "石斧砍柴好慢";}
}

4.修改spring-config.xml配置文件

<?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="chinese" class="org.spring.service.impl.Chinese"><property name="axe" ref="stoneAxe"/></bean><bean id="stoneAxe" class="org.spring.service.impl.StoneAxe"/>
</beans>

5.写主程序main

public class SpringTest {public static void main(String[] args){ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");Person p = (Person) ctx.getBean("chinese", Person.class);p.useAxe();}
}

程序到此结束,运行结果为:

石斧砍柴好慢

Spring的核心机制:依赖注入(Dependency Inhection)(控制反转IoC—Inversion of Control)

依赖注入通常包括以下两种:

设值注入:使用属性的setter方法来注入被依赖的实例

构造注入:使用构造器来注入被依赖的实例

请看下面的例子

public class Chinese implements Person {private Axe axe;//设值注入public void setAxe(Axe axe) {this.axe = axe;}//构造注入public Chinese(Axe axe) {this.axe = axe;}@Overridepublic void useAxe() {System.out.println(axe.chop());}
}

不同的注入方式在配置文件中的配置也不一样

<!--设值注入-->
<bean id="chinese" class="org.spring.service.impl.Chinese"><property name="axe" ref="steelAxe"/>
</bean>
<!--构造注入-->
<bean id="chinese" class="org.spring.service.impl.Chinese"><constructor-arg ref="stoneAxe"/>
</bean>

建议采用以设值注入为主,构造注入为辅的注入策略。对于依赖关系无需变化的注入,尽量采用构造注入;而其他的依赖关系的注入,则考虑使用设值注入。

 

Spring的两个核心接口Spring容器最基本的接口是BeanFactory。它有一个子接口:ApplicationContext。

ApplicationContext有两个常用的实现类:

FileSystemXmlApplicationContext:以基于文件系统的XML配置文件创建实例
ClassPathXmlApplicationContext:以类加载路径下的XML配置文件创建实例

转载于:https://www.cnblogs.com/weilunhui/p/4143668.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 按钮组_java中创建一个按钮组,有10个按钮,分别写着0,1,2,,3。。。。9

展开全部用Java创建按钮组32313133353236313431303231363533e59b9ee7ad9431333332643966的程序如下:import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class…

Starling 2D框架简介

本系列是对Introducing Starling pdf的翻译&#xff0c;下文是对adobe开发人员中心的一片日志的转载&#xff0c;地址为http://www.adobe.com/cn/devnet/flashplayer/articles/introducing_Starling.html Starling 是在 Stage3D APIs 基础上开发的一种 ActionScript 3 2D 框架&…

基本数据结构——栈

栈的特征是后进先出&#xff08;last-in, first-out, LIFO&#xff09;。栈上的插入操作称为压入&#xff08;PUSH&#xff09;&#xff0c;删除操作称为弹出&#xff08;POP&#xff09;。 下面使用一个数组S[n]来实现一个最多容纳n个元素的栈。定义一个属性指向最新插入的元素…

Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

Android AutoCompleteTextView 控件实现类似被搜索提示&#xff0c;效果如下 1.首先贴出布局代码 activity_main.xml&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res…

Centos/RHEL上查看主板型号

老是搞忘记&#xff0c;专门做个记录&#xff1a; [rootmedia ~]# dmidecode | grep "Product Name" Product Name: To be filled by O.E.M.Product Name: B75M-D3V 修改默认语言&#xff1a;[chenshouyongmedia ~]$ cat /etc/sysconfig/i18n LANG"en_US.UTF-8…

java即时聊天系统毕业_(完整版)基于Java即时聊天系统的设计与实现毕业论文设计...

目录1 前言...................................................................................................................................1.1 课题选题背景...................................................................................................…

杭电 1284 钱币兑换问题【完全背包求方案总数】

解题思路&#xff1a;因为对于完全背包的状态转移方程f[v]max(f[v],f[v-c[i]]w[i])已经记录了所有背包组成的方案&#xff0c;只不过通常问的是求最大值&#xff0c;现在要求方案总数 即为 f[v]sum(f[v],f[v-c[i]w[i]]), Problem Description在一个国家仅有1分&#xff0c;2分&…

java与算法_Java与算法之(1) - 冒泡排序

冒泡排序法的原理是&#xff0c;每次比较相邻的两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。例如对4 3 6 2 7 1 5这7个数字进行从小到大的排序&#xff0c;从最左侧开始&#xff0c;首先比较4和3因为是从小到大排序&#xff0c;4和3的顺序显然是错误的&#xff0…

Js+XML 操作

我的xml文件Login.xml如下. <?xml version"1.0" encoding"utf-8" ?><Login><Character><C Text"热血"Value"0"></C><C Text"弱气"Value"1"></C><C Text"激情…

Java(Android)线程池

1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗&#xff1f; [java] view plaincopy new Thread(new Runnable() { Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就out太多了&#xff0c;n…

JQuery链式操作简单的菜单列表

看到这个简单的菜单demo&#xff0c;也是为了再看看JQuery对DOM的操作&#xff0c;一直都记不牢&#xff0c;特别是siblings&#xff08;&#xff09;这个总是想不起来。 这次再过一遍JQuery&#xff0c;不管简单的还是复杂的demo 还是坚持练习一遍吧&#xff01;只为记录&…

java 网络编程实验_Java网络编程入门实验一涉及点

1.http://www.cr173.com/html/20128_all.html 【wireshark怎么抓包、wireshark抓包详细图文教程】2.http://blog.csdn.net/huangjin0507/article/details/51678858 【HTTP协议1&#xff1a;工作原理】3.https://www.cnblogs.com/1666818961-lxj/p/7210021.html 【网络常用端口号…

node.js async流程控制器--queue(队列)

queue流程控制器是一个并行的流程控制器,但是它与parallel的区别在于queue可以控制一次执行几个函数,而parallel只是让所有函数并行执行. 例子如下: var q async.queue(function (obj,cb) {setTimeout(function () {console.log(obj);cb(); },obj.time) },1)for (var i 0; i&…

利用JS实现点击上一周或下一周却换

1.页面加载显示当前年份的第几周 效果如图&#xff1a; html代码&#xff1a; <font size"2" color"black"> <input id"btnweek5" type"button" class"btn" value"上周" οnclick"EduCommissio…

centos7网卡编辑_CentOS7修改网卡为eth0

1.编辑网卡信息[rootlinux-node2~]#cd /etc/sysconfig/network-scripts/ #进入网卡目录[rootlinux-node2network-scripts]# mv ifcfg-eno16777728 ifcfg-eth0 #重命名网卡名称[rootlinux-node2 network-scripts]#cat ifcfg-eth0 #编辑网卡信息TYPEEthernetBOOTPROTOstaticDEFR…

C# 微支付退款申请接口 V3.3.6

/// <summary>/// 微支付退款申请/// </summary>/// <param name"context"></param>/// <param name"returnMsg"></param>/// <returns></returns>public bool Refund(HttpContext context, ref string r…

[转] 英语、计算机、互联网与全球化

http://davidzhao.blog.51cto.com/4548102/1225732 转载于:https://www.cnblogs.com/wowk/p/3169638.html

APNIC IP 库

http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest转载于:https://www.cnblogs.com/dlwj/p/6388162.html

java reference 传引用_Java的引用(reference)---Roni

摘自《Java面向对象编程》一书,作者:孙卫琴 来源:www.javathinker.org在JDK1.2以前的版本中&#xff0c;当一个对象不被任何变量引用&#xff0c;那么程序就无法再使用这个对象。也就是说&#xff0c;只有对象处于可触及状态&#xff0c;程序才能使用它。这就像在日常生活中&am…

C# 以管理员身份运行程序

刚看了一篇博友写的“以管理员身份运行程序”, 所以我也来写一个简单易懂的&#xff0c;简单两步搞定&#xff0c;不用写任何代码&#xff1a; 第一步&#xff1a; 右键选择项目 > 添加 > 新建项 &#xff1b; 找到 应用程序清单文件&#xff0c;后缀名为manifest&#x…