注入---注解

public class Student {
    public void say() {
        System.out.println("student say");
    }
}
public class Person {
    //@Resource(name="student")
    @Resource()
    private Student student;

    public void say(){
        this.student.say();
    }
}
<?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"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <bean id="student" class="com.sn.domain.Student"></bean>
    <bean id="person" class="com.sn.domain.Person"></bean>
    <context:annotation-config></context:annotation-config>
</beans>
/**
 * 原理:
 *    1、启动spring容器
 *    2、把person和student两个bean实例化
 *    3、当spring容器解析到
 *            <context:annotation-config></context:annotation-config>
 *       就会启动依赖注入的注解解析器
 *    4、spring容器会在纳入spring管理的bean的范围内查找,看这些类的哪些属性上加有@Resource注解
 *    5、如果某一个属性上加有@Resource注解
 *            会查看该注解的name属性的值是否为""
 *              如果为"",则会把该注解所在的属性的名称和spring容器中的id的值作匹配,如果匹配成功,则赋值
 *                                          如果匹配不成功,则按照类型进行匹配,匹配成功则赋值
 *                                             如果再匹配不成功,则报错
 *              如果不为"",则把该注解的name属性的值和spring容器中id的值作匹配,如果匹配成功,则赋值
 *                                           如果匹配不成功,则直接报错
 *
        说明:
            注解只能作用于引用类型
            xml与注解的对比
               xml的效率比较高,书写比较麻烦
                   注解的书写比较简单,效率比较低
 * @author zd
 *
 */
public class AnnotationTest {
    @Test
    public void testAnnotation(){
        ApplicationContext context =
                 new ClassPathXmlApplicationContext("applicationContext.xml");
        Person person = (Person)context.getBean("person");
        person.say();
    }
}
时间: 2024-11-08 07:29:12

注入---注解的相关文章

spring IOC快速入门,属性注入,注解开发

我们使用spring框架也会使用到配置文件,我们需要在src下创建一个关于spring的配置文件,一般情况名称叫applicationContext.xml 基本约束: <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> IOC快速入门 inversion of Controller

Java Spring各种依赖注入注解的区别

Spring对于Bean的依赖注入,支持多种注解方式: @Resource javax.annotation JSR250 (Common Annotations for Java) @Inject javax.inject JSR330 (Dependency Injection for Java) @Autowired org.springframework.bean.factory Spring 直观上看起来,@Autowired是Spring提供的注解,其他几个都是JDK本身内建的注解,

Spring组件注解和注入注解内部方式的区别

一.@Component.@Repository.@Service.@Controller区别 Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3个注释和 @Component 相

Spring中的属性注入注解

@Inject使用 JSR330规范实现的 默认按照类型注入 如果需要按照名称注入,@Inject需要和@Name一起使用 @Resource JSR250规范实现的,需要导入不同的包 @Resource是按照名称匹配的 @Autowired Spring中定义的注解 默认按照类型注入 如果需要按照名称注入,需要配合@Qualifier注解一起使用 包含一个require属性 原文地址:https://www.cnblogs.com/watertreestar/p/11780306.html

注入--注解---扫描

@Component public class Student { public void say() { System.out.println("student say"); } } @Component public class Person { //@Resource(name="student") @Resource() private Student student; public void say(){ this.student.say(); } } &

springMvc的注解注入方式

springMvc的注解注入方式 最近在看springMvc的源码,看到了该框架的注入注解的部分觉的有点吃力,可能还是对注解的方面的知识还认识的不够深刻,所以特意去学习注解方面的知识.由于本人也是抱着学习的态度来阅读源码,若文章在表述和代码方面如有不妥之处,欢迎批评指正.留下你的脚印,欢迎评论!希望能互相学习. 1,首先定义三个常用的注解Service,Autowired,Contrller:(主要的解释都在代码中有,在这里就不多陈述) Service: package com.lishun.A

开涛spring3(12.2) - 零配置 之 12.2 注解实现Bean依赖注入

12.2  注解实现Bean依赖注入 12.2.1  概述 注解实现Bean配置主要用来进行如依赖注入.生命周期回调方法定义等,不能消除XML文件中的Bean元数据定义,且基于XML配置中的依赖注入的数据将覆盖基于注解配置中的依赖注入的数据. Spring3的基于注解实现Bean依赖注入支持如下三种注解: Spring自带依赖注入注解: Spring自带的一套依赖注入注解: JSR-250注解:Java平台的公共注解,是Java EE 5规范之一,在JDK6中默认包含这些注解,从Spring2.

注解学习(模仿springMvc的注解注入方式)

最近在看springMvc的源码,看到了该框架的注入注解的部分觉的有点吃力,可能还是对注解的方面的知识还认识的不够深刻,所以特意去学习注解方面的知识.由于本人也是抱着学习的态度来阅读源码,若文章在表述和代码方面如有不妥之处,欢迎批评指正.留下你的脚印,欢迎评论!希望能互相学习. 1,首先定义三个常用的注解Service,Autowired,Contrller:(主要的解释都在代码中有,在这里就不多陈述) Service: package com.lishun.Annotation; import

浅谈Web安全-SQL注入

简单的说一下我对Web安全的了解,主要是代码注入方面. SQL注入 简介: SQL攻击(SQL injection),简称为注入攻击,是发生于应用程序数据库层的安全漏洞.简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵. 简单的说,所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.例如:如果用户在