20160121--Spring
package com.hanqi; public class HelloWorld { public HelloWorld()
{ } public HelloWorld(String name)
{
this.name = name;
} private User user; private String name; public String getName() {
return name;
} public void setName(String name) { System.out.println("设置name = " + name); this.name = name;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public void sayHello()
{
System.out.println("Hello " + name + " " + user);
} }
HelloWorld.java
package com.hanqi; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { //调用
public static void main(String[] args) { /*
//初始化
HelloWorld hw = new HelloWorld(); hw.setName("Java"); hw.sayHello();
*/
//构建容器
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //从容器中获取实例 控制反转IOC
HelloWorld hw = (HelloWorld)ac.getBean("helloWorld"); //调用实例的方法
hw.sayHello(); } }
Main.java
<?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="helloWorld" class="com.hanqi.HelloWorld">
<!-- 依赖注入DI -->
<property name="name" value="Spring"></property>
<property name="user" ref="user1"></property> </bean> <bean id="user" class="com.hanqi.User">
<property name="name" value="小强"></property>
</bean> <bean id="user1" class="com.hanqi.User"><!-- User中的 name、age、sex 一一对应 -->
<constructor-arg value="小明" type="String"></constructor-arg> <!-- 用 index="顺序号" 进行匹配 -->
<constructor-arg value="12" type="int"></constructor-arg> <!-- type="数据类型" 根据数据类型来进行匹配 -->
<constructor-arg value="男" type="String"></constructor-arg>
<!-- <constructor-arg value="小明" index="0"></constructor-arg> 用 index="顺序号" 进行匹配 -->
</bean> </beans>
applicationContext.xml
package com.hanqi; public class User { public User()
{ } @Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
} public User(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
} private String name;
private int age;
private String sex; public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
User.java
20160121--Spring的更多相关文章
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- Spring基于AOP的事务管理
Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- 学习AOP之深入一点Spring Aop
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...
- 学习AOP之认识一下Spring AOP
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Spring之旅(2)
Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...
- Spring之旅
Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...
随机推荐
- asp.net中,我们使用ashx获取数据列表,在前端使用$.ajax()解析
一直在想在asp.net中怎么才能向在java中那样用struts那样做页面请求. 当然asp.net mvc就是类似struts的东西吧,不过还没来得及学习. 今天就用ashx来接收页面请求,并调用 ...
- Pasha and Phone(思维)
Pasha and Phone time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- 面向对象继承实例(a如何继承b)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- [置顶] 深入浅出Spring(三) AOP详解
上次的博文深入浅出Spring(二) IoC详解中,我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming ...
- PipedInputStream/PipedOutputStream原理
PipedInputStream类与PipedOutputStream类用于在应用程序中创建管道通信.一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进 ...
- mesos博客集
http://dongxicheng.org/category/apache-mesos/
- log4net简单用法
一.NuGet在Server,mvc中添加Common.Logging和common.Logging.Log4Net如下图 二.在Server层创建logger类 <?xml version=& ...
- Linux自制离线源,利用百度网盘等下载离线资源
CentOS安装Axel: 目前yum源上没有Axel,我们可以到http://pkgs.repoforge.org/axel/下载rpm包安装. 32位CentOS执行下面命令: wget -c h ...
- iOS开发那些事儿(四)the dark arts of the Objective-C runtime
一."Black Magic":Method Swizzling 利用 Runtime 特性把一个方法的实现与另一个方法的实现进行替换,也可以用runtime的四维理解——修改Di ...
- STM32学习笔记之一(初窥STM32)
怎么做好学习笔记? 答:自我感知-->学习知识-->归纳总结-->自我升华(真正属于自己的知识是,抛开书本,运用时,你还能记得的思想) 自我感知--看到知识概念,先自我感觉那应该是个 ...