Spring4-自动装配Beans-通过注解@Autowired在构造方法上

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

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)如图所示

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)如图所示

6.实体Bean ForumPost的内容如下

package com.mycompany.shequ.bean;

import org.springframework.beans.factory.annotation.Autowired;

public class ForumPost {
	private int pid;
	private String name;
	private Forum forum;

	public ForumPost() {
		super();
	}

	@Autowired
	public ForumPost(Forum forum) {
		super();
		this.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,如图所示

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">

   <bean id="forumpost"
       class="com.mycompany.shequ.bean.ForumPost">
   </bean>
   
   <bean id="forum" class="com.mycompany.shequ.bean.Forum">
   		<property name="fid" value="3"></property>
   		<property name="name" value="@Autowired 在构造方法上"></property>
   </bean>

</beans>

9.在src/main/resources下创建spring的核心配置文件applicationContext.xml,如图所示

10.spring的核心配置文件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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-4.0.xsd">
   
       <context:annotation-config />

	<import resource="bean/spring-bean.xml"/>

</beans>

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

12.测试类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,通过注解@Autowired在构造方法上
	 */
	@Test
	public void autowiredTest(){
	    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

	    ForumPost forumPost = (ForumPost) context.getBean("forumpost");

	    System.out.println(forumPost.getForum().getName());
	}
}	

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

时间: 2024-08-28 13:43:11

Spring4-自动装配Beans-通过注解@Autowired在构造方法上的相关文章

Spring4-自动装配Beans-通过注解@Autowired在Set方法上

1.创建Maven项目,项目名称springdemo18,如图所示 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

Spring自动装配Beans

学习来源: http://www.yiibai.com/spring/spring-auto-wiring-beans-in-xml.html http://www.yiibai.com/spring/spring-auto-wiring-beans-with-autowired-annotation.html 自动装配(autowiring),我是这样理解的:bean1作为bean2的属性,在配置文件中设置二者的关联后,当Spring容器创建bean2对象时,会自动创建bean1的对象并赋值给

spring的自动装配,骚话@Autowired的底层工作原理

前言 开心一刻 十年前,我:我交女票了,比我大两岁.妈:不行!赶紧分! 八年前,我:我交女票了,个比我小两岁,外地的.妈:你就不能让我省点心? 五年前,我:我交女票了,市长的女儿.妈:别人还能看上你?分了吧! 今年,我挺着大肚子踏进家门.妈:闺女啊,你终于开窍了 ! 前情回顾 Spring拓展接口之BeanPostProcessor,我们来看看它的底层实现中讲到了spring对BeanPostProcessor的底层支持,并且知道了BeanPostProcessor的两个方法:postProce

Spring自动装配与扫描注解

1 javabean的自动装配 自动注入,减少xml文件的配置信息. 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 到入xml文件的约束 --> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:p="http://www.springframework.org/sche

Spring4 自动装配;方法注入

通过配置defalut-zutowire属性,Spring IOC容器可以自动为程序注入Bean;默认是no(不启用自动装配). default-autowire的类型有: byName:通过名称自动进行匹配 byType:通过属性自动进行匹配 示例如下: 一个实体类people beans.xml配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spr

spring自动装配

spring提供了自动装配(autowiring)和自动检测(autodiscovery)用来减少XML的配置数量. 自动装配bean属性 byName——把与Bean的属性具有相同名字(或ID)的其他Bean自动装配到Bean的对应属性中. 示例: import com.springinaction.springdol.Instrumentalist; public class Instrumentalist{ private String song; private Object instr

【Core Spring】二、装配beans

在Spring中,对象不负责寻找和创建它们需要的其他对象.创建两个应用对象之间关联的动作是依赖注入的核心功能,通常称为装配. 创建beans和构建它们之间的关系是Spring的责任,但是告诉Spring哪些bean需要被创建并且怎样将它们装装配到一起是开发者的责任.Spring提供了三种基本的装配机制. 显式地通过XML配置 显式地通过Java配置 隐式地发现bean并且自动装配 自动装配beans Spring从两个角度解决自动装配 Component scanning----Spring自动

3.Spring自动装配

3.Bean的自动装配 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean有三种装配机制,分别是: 在xml中显式配置: 在java中显式配置: 隐式的bean发现机制和自动装配. 这里我们主要讲第三种:自动化的装配bean. Spring的自动装配需要从两个角度来实现,或者说是两个操作: 组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean: 组件扫描和自

Spring(3.2.3) - Beans(9): @Resoure &amp; @Autowired

@Resource 和 @Autowired 都是用来装配依赖的,它们之间有些异同. @Resoure @Resource 是 JSR-250 规范的注解. @Resource 可以标注在字段.方法上,但不可以标注在构造方法上. 默认情况下,@Resource 按依赖的名称进行装配.@Resource 与 <property/> 元素的 ref 属性的效果相同. @Resource 的装配顺序 如果同时指定了 name 和 type 属性,则从 Spring 容器中查找唯一匹配的 Bean 进