Spring通过注解配置Bean

@Component: 基本注解, 标识了一个受 Spring 管理的组件
@Repository: 标识持久层组件
@Service: 标识服务层(业务层)组件
@Controller: 标识表现层组件

配置文件

<?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.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!-- 配置自动扫描的包: 需要加入 aop 对应的 jar 包 -->
    <!-- 扫描此包及此包下的子包 -->
    <context:component-scan base-package="com.spring.annotation"></context:component-scan>

</beans>

demo

package com.spring.annotation;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

@Controller
public class UserAction {

    /*默认情况下所有使用 @Authwired 注解的属性都需要被设置. 当 Spring 找不到匹配的 Bean 装配属性时,
    会抛出异常, 若某一属性允许不被设置, 可以设置 @Authwired 注解的 required 属性为 false
    默认情况下, 当 IOC 容器里存在多个类型兼容的 Bean 时, 通过类型的自动装配将无法工作.
    此时可以在 @Qualifier 注解里提供 Bean 的名称. Spring 允许对方法的入参标注
    @Qualifiter 已指定注入 Bean 的名称*/

    @Autowired(required=false)
    @Qualifier("usreService")
    private UsreService usreService;

    public void execute(){
        System.out.println("添加用户");
        usreService.add();
    }

}

package com.spring.annotation;

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

@Service
public class UsreService {

    @Autowired
    private UserRepository userDao;

    public void add(){
        System.out.println("接收请求");
        userDao.save();
    }

}

package com.spring.annotation;

import org.springframework.stereotype.Repository;

@Repository
public class UserRepository {

    public void save(){
        System.out.println("保存数据");
    }

}

测试

package com.spring.annotation;

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

public class Main {

    public static void main(String[] args) {

        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-annotation.xml");

        UserAction userAction = (UserAction) ctx.getBean("userAction");//默认Bean id为类名首字母小写
        userAction.execute();
    }

}

时间: 2024-10-04 14:56:16

Spring通过注解配置Bean的相关文章

Spring -- 注解配置Bean

通过注解配置Bean 特定组件包括: @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository: 标识持久层组件 @Service: 标识服务层(业务层)组件 @Controller: 标识表现层组件 上面的组件可以混用,因为IOC容器并无法区分当前类是否为业务.持久.还是表现层. 对于扫描到的组件, Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称 使用注解配置Bean前,我们

Spring IOC机制之使用注解配置bean

一. 通过注解配置bean 1.1       概述 相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式. 1.2       使用注解标识组件 ①普通组件:@Component:标识一个受Spring IOC容器管理的组件 ②持久化层组件:@Respository:标识一个受Spring IOC容器管理的持久化层组件 ③业务逻辑层组件:@Service:标识一个受Spring IOC容器管理的业务逻辑层组件 ④表述层控制

14Spring通过注解配置Bean(2)

下面将对13Spring通过注解配置Bean(1)的中Repository.Service.Controller通过注解方式来建立关联. <context:component-scan>元素还会自动注册AutowiredAnnotationBeanPostProcessor后置处理器实例,该实例可以自动装配具有@Autowired属性. @Autowired注解会自动装配具有兼容类型的单个Bean属性 ——构造器,普通字段(即使是非public),一切具有参数的方法都可以应用@Autowire

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

Spring4学习笔记-通过注解配置bean

通过注解配置Bean TestObject.java package com.spring.beans.annotation; import org.springframework.stereotype.Component;; @Component public class TestObject { } UserController.java package com.spring.beans.annotation.controller; import org.springframework.st

13Spring通过注解配置Bean(1)

配置Bean的形式:基于XML文件的方式:基于注解的方式(基于注解配置Bean:基于注解来装配Bean的属性) 下面介绍基于注解的方式来配置Bean. ——组件扫描(component scanning):Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. ——特定组件包括: [email protected]:基本注解,标识了一个受Spring管理的组件 [email protected]:标识持久层组件 [email protected]:标识服务层(业务层)组

spring Aop注解配置

①<!-- 启用AOP --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> ②<!-- 配置扫描标注注解的包 --> <context:component-scan base-package="com.tz.spring.dao,com.tz.spring.service,com.tz.spring.advice"></context:component-scan>

Spring AOP 注解配置实例

Spring AOP注解例子 一:导入相关jar包. 首先导入Spring的相关包(这里就不多说了,我这里是3.2.4版本的) 然后导入AOP注解的相关包(不是spring的包)aspectjrt-1.6.7.jar和aspectjweaver-1.6.8.jar和aopalliance.jar (注意这里最好是1.6.7以上的版本,不然容易出错,折腾了我好久,最后才发现是包的版本问题. 所以这里一定要注意,spring 2.0以后的最好是用1.6.7的版本) 二: 建一个class类作为切入面

Spring使用注解配置依赖注入

大部分情况下,使用Spring配置依赖注入时,都是使用注解来进行配置,因为注解比xml要方便和简单.不过类似于数据源对象这种配置信息容易变更的对象除外,这种对象使用xml文件来进行配置会更适合,方便于在外部进行修改,而不需要打开代码来进行修改. 接下来简单介绍一下注解的配置方式,首先要让Spring支持注解,编辑Spring配置文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&