Spring编程<二>
来源:互联网 发布:u盘恢复数据多少钱 编辑:程序博客网 时间:2024/06/06 13:59
Spring编程<二>
用纯JAVA方式演示—-容器与配置文件
导入需要用到的包:
写一个配置文件:
//applicationContext.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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 默认是单例--> <bean id="p1" class="cn.hncu.domain.Person" > <property name="name" value="Tom"></property> <property name="age" value="22"></property> </bean> <!-- prototype原型,每次拿的都是新的 --> <bean id="p2" class="cn.hncu.domain.Person" scope="prototype"> <property name="name" value="Jack"></property> <property name="age" value="20"></property> </bean> </beans>
演示代码1:
@Test public void demo1() { ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); Person p1 = context.getBean("p1", Person.class); System.out.println(p1); Person p2 = context.getBean("p1", Person.class);//参数1为XML的Bean中的ID属性 System.out.println(p2); System.out.println(p1==p2);// Spring默认是单例,所以是true } @Test public void demo2() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p1 = ctx.getBean("p2", Person.class); Person p2 = ctx.getBean("p2", Person.class); System.out.println(p1); System.out.println(p1==p2); }
演示结果1:
demo1:
demo2:
演示如何在配置文件中导入其他配置文件
<!--demo2.xml --> <!-- 属性变量是一个Bean --> <!-- ref 依赖注入 --> <property name="cat" ref="cat2"></property><!-- 导入其他配置文件 --> <import resource="cat.xml" />
必须写SET,GET函数,空参构造
//cat.java private String name; private String hobby; public Cat(){} public String getName() { return name; } public void setName(String name) { this.name = name; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } @Override public String toString() { return "Cat [name=" + name + ", hobby=" + hobby + "]"; }
<!-- cat.xml --> <bean id="cat1" class="cn.hncu.demo2.Cat"> <property name="name" value="Tom"></property> <property name="hobby" value="上天"></property> </bean> <bean id="cat2" class="cn.hncu.demo2.Cat"> <property name="name" value="R"></property> <property name="hobby" value="唱歌"></property> </bean>
Demo2:
不需要在里面New对象Cat
@Test public void t1(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("cn/hncu/demo2/demo2.xml"); User u = ctx.getBean("user", User.class); System.out.println(u); }
演示结果:
配置文件中复杂属性变量:List等。
<!-- 属性变量是一个list,map,set --> <property name="addrs"> <list> <value>益阳</value> <value>长沙</value> <value>湘潭</value> </list> </property> <property name="map"> <map> <entry key="name" value="pwd" /> <entry key="age" value="20" /> </map> </property> <property name="set"> <set> <value>111</value> <value>222</value> <value>333</value> </set> </property> <!-- 属性值是一个Object[]的数组,集合嵌套 --> <property name="objs"> <array> <value>一个字符串</value> <ref bean="cat1" /> <!-- 内部bean (匿名) --> <bean class="cn.hncu.demo2.Cat"> <property name="name" value="恶汉猫"></property> <property name="hobby" value="PK"></property> </bean> </array> </property>
模拟MVC框架DAO与Service注入:
以前注入都是New一个,现在全部写NULL,并写好SET,GET函数
配置文件:
<!-- 全部用关系ref,连起来 --> <bean id="mysqlDao" class="cn.hncu.demo3.dao.StudDaoJdbc" > </bean> <bean id="oracleDao" class="cn.hncu.demo3.dao.StudDaoOracle" > </bean> <!-- 依赖注入 --> <bean id="service" class="cn.hncu.demo3.service.StudServiceImpl"> <property name="dao" ref="mysqlDao"></property> </bean> <bean id="action" class="cn.hncu.demo3.action.StudAction"> <property name="service" ref="service"></property> </bean>
Spring下载地址:
http://repo.springsource.org/libs-release-local/org/springframework/spring/
阅读全文
0 0
- spring aop编程(二)
- Spring编程<二>
- Spring面向切面编程二
- Spring AOP实践(二)编程篇
- spring aop 2.0 编程(二)一个实例
- spring aop 2.0 编程(二)一个实例
- spring学习(二)AOP面向切面编程
- Spring:AOP(二)编程方式实现AOP
- Spring框架(二)--AOP面向切面编程
- Spring核心概念<二>:AOP面向切面编程
- Spring配置过程 (二)面向切面编程AOP
- Spring(二)
- Spring(二)(
- spring二
- Spring入门(二)——理解spring的AOP编程
- 编程二
- Java网络编程(二) - 15分钟搭建我的第一个 Spring MVC 项目
- Spring学习之旅(二) AOP(面向切面编程)的使用
- hdu 6143(精妙的递推)
- uC/OS-II系统学习笔记(5)—— uC/OS-II概述下篇
- 如何重写PictureBox的OnPaint方法绘制矩形,并实现拖动,鼠标悬停时提示拖拽方向
- Docker阿里加速器
- Java集合类
- Spring编程<二>
- validate 使用,存着
- hadoop之旅(五)
- 重构-代码的坏味道
- CentOS6.6中自带Python版本升级
- AndroidStudio的Gradle基础
- 【codevs 1801】矿工配餐
- redis进阶
- select、epoll源码剖析与对比