当前位置: 首页 > news >正文

Spring4-自动装配Beans-按属性名称自动装配

1.创建Maven项目,项目名称springdemo15,如图所示

wKiom1jTLkmAE2n-AAAUdP9LGfA400.png-wh_50


2.配置Maven,修改项目中的pom.xml文件,修改内容如下

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>1.0.0</modelVersion>
  <groupId>shequ</groupId>
  <artifactId>springdemo13</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <properties>
  	<java.version>1.7</java.version>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>
  
  <repositories>
  	<repository>
  		<id>codelds</id>
  		<url>https://code.lds.org/nexus/content/groups/main-repo</url>
  	</repository>
  </repositories>
  
  <dependencies>
  	<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.10</version>
  	</dependency>
  	
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-core</artifactId>
  		<version>4.1.4.RELEASE</version>
  	</dependency>
  	
  	<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.4.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.1.4.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
       
       
  </dependencies>
  <build/>
</project>


3.在src/main/java下创建实体Bean Forum,包名(com.mycompany.shequ.bean)如图所示

wKioL1jTLorgueR9AABNoychDas659.png-wh_50


4.实体Bean Forum的内容如下

package com.mycompany.shequ.bean;

public class Forum {
	private int fid;
	private String name;
	public int getFid() {
		return fid;
	}
	public void setFid(int fid) {
		this.fid = fid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}


5.在src/main/java下创建实体Bean ForumPost,包名(com.mycompany.shequ.bean)如图所示

wKioL1jTLr-jnO-2AABMAgVUHQM333.png-wh_50


6.实体Bean ForumPost的内容如下

package com.mycompany.shequ.bean;

public class ForumPost {
	private int pid;
	private String name;
	private Forum forum;
	public int getPid() {
		return pid;
	}
	public void setPid(int pid) {
		this.pid = pid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Forum getForum() {
		return forum;
	}
	public void setForum(Forum forum) {
		this.forum = forum;
	}
	
}


7.在src/main/resources下创建Bean配置文件,配置文件名称spring-bean.xml,如图所示

wKioL1jTLvbARG81AABGIOj-E9s811.png-wh_50


8.spring-bean.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">

	<!-- 按属性名称自动装配 autowire="byName" -->
   <bean id="forumpost"
       class="com.mycompany.shequ.bean.ForumPost" autowire="byName">
   </bean>
   
   <bean id="forum" class="com.mycompany.shequ.bean.Forum">
   		<property name="fid" value="3"></property>
   		<property name="name" value="代理"></property>
   </bean>

</beans>


9.在src/test/java下创建测试类ForumPostTest,包名(com.mycompany.shequ.bean),如图所示

wKioL1jTL0fSiiKLAABJlE6kvEs353.png-wh_50


10.测试类ForumPostTest的内容如下

package com.mycompany.shequ.bean;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ForumPostTest {
	
	/**
	 * spring 的自动装配Beans,按属性名称自动装配
	 */
	@Test
	public void byNameTest(){
	    ApplicationContext context = new ClassPathXmlApplicationContext("/bean/spring-bean.xml");
		
	    ForumPost forumPost = (ForumPost) context.getBean("forumpost");
		
	    System.out.println(forumPost.getForum().getName());
	}
}	


11.在测试类ForumPostTest的byNameTest方法上右键运行,输出结果如图所示

wKioL1jTL53iYe1AAAD-cUPxK84973.png-wh_50

wKiom1jUh2eBfyVAAABwCKMO5XE192.png-wh_50


本文转自 素颜猪 51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1909483

相关文章:

  • Office 365管理员快速上手手册
  • centos 系统管理维护指南
  • phpcms v9 添加内容出现500错误
  • ElasticSearch vs 关系型数据库
  • 【Kafka源码】broker被选为controller之后的连锁反应
  • 极速理解设计模式系列:14.轻量级模式(Flyweight Pattern)
  • Resin HTTPS 安装指南
  • Solr 整合
  • Android Framework 记录之二
  • 在窗体中添加标签Label、Icon图标
  • MultiRow发现之旅(三)- 模板管理器和Table
  • 利用JS实现的根据经纬度计算地球上两点之间的距离
  • 高可用mongodb集群的学习记录(二mongodb主从配置)
  • node09---中间件
  • DataGridView的CellFormatting事件和CellPainting事件
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • avalon2.2的VM生成过程
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • javascript面向对象之创建对象
  • leetcode讲解--894. All Possible Full Binary Trees
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Sass Day-01
  • SQLServer插入数据
  • Swift 中的尾递归和蹦床
  • Vue实战(四)登录/注册页的实现
  • 阿里云应用高可用服务公测发布
  • 订阅Forge Viewer所有的事件
  • 构建工具 - 收藏集 - 掘金
  • 马上搞懂 GeoJSON
  • 七牛云假注销小指南
  • 思考 CSS 架构
  • 通信类
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Linux(make工具和makefile文件以及makefile语法)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (k8s中)docker netty OOM问题记录
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (SpringBoot)第二章:Spring创建和使用
  • (待修改)PyG安装步骤
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (五)MySQL的备份及恢复
  • (五)关系数据库标准语言SQL
  • (一)80c52学习之旅-起始篇
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)Linux 多线程条件变量同步
  • .bat批处理(一):@echo off
  • .NET 4.0中的泛型协变和反变