spring 的IoC注解的配置信息

Spring的注解Ioc的配置

注解一共分为四类:

1.创建对象

2.注入数据

3.改变作用范围

4.和生命周期相关

1.创建对象

xml方式创建对象

相对于xml配置就是:<bean id=" " class=" "></bean>

id 为要创建对象的唯一标识

class 对象的全限定类名

注解创建创建对象

@component() 组件的意思

作用:把当前类的对象存入IoC容器中(写在要创建的对象的类上面)

参数: value 指定获取bean对象时的id, 当不指定的时候,就会默认为当前类的名字,首字母小写

由此注解衍生出的三个注解

  • @Controller @Service @Repository

    表现层 业务层 持久层

  • 他们三个是spring框架为我们提供更强语义化的注解,可以让开发者通过注解即知道是哪一层的类。但是没有要求必须对应使用(体现了封装继承的思想)

2.注入数据

xml方式:使用set注入或者构造函数注入

使用set注入时候就要set方法。构造函数注入的时候就要构造函数

<property name="" value="" || ref="" ></property>

注解注入:

就是给成员方法注入值

@Autowried 会自动的按照类型注入,如果没有找到匹配的类型,那么就会报错,(报什么错看required的属性),如果有唯一的一个类型匹配,那么就注入成功,如果有多个匹配时,还会使用变量名称作为bean的id,在匹配的类型对象列表中,根据id获取,如果能找到依然可以注入成功。找不到就报错。

属性:

required:是否必须注入成功。默认值是true,表示必须注入成功。通常情况下都是取默认值

细节:使用注解注入时,set方法和构造函数就不是必须的了。

@Qualifier

作用:在自动按照类型注入的基础之上,再按照bean的id注入。在给类的成员注入时,不能独立使用。(在junit和spring整合的时候就会单独的用到 Qualifier)

属性:

value:用于指定bean的id。

@Resource

作用:直接使用bean的id来注入。

属性:

name:用于指定bean的id。

@Value:

作用:用于指定基本类型或者String类型的数据。它通常的作用都是用于读取properties文件中的配置

需要借助spring的el表达式。写法:${key} 读取的就是properties文件的value

属性:

value:用于指定数据内容

对于表达式的理解:

表达式的作用:为了取数据

第一、我们要知道表达式写在什么位置,不同的位置代表的含义不一样

第二、去哪里取数据

3.用于改变作用范围的

xml配置改变作用的范围:

bean标签的scope属性

scope:指定对象的作用范围。

singleton :默认值,单例的.

prototype :多例的.

request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.

session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.

global session :WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境,那么globalSession 相当于 session.

注解配置:

@scope

作用:用于指定当前bean的作用范围

属性:

value:用于指定作用范围的值。

取值和xml配置时是一模一样的。

同上……

4.和生命周期有关的注解

和生命周期相关的

  • 相当于xml配置就是:bean标签的init-method和destory-method属性
  • @PostConstruct

    作用:用于指定初始化方法

  • @PreDestroy

    作用:用于指定销毁方法

5.spring的配置类

@Bean:

  • 作用:把当前方法的返回值放入spring的ioc容器
  • 属性:

    name:用于指定bean的id。默认值是当前方法名称。它和value属性的作用是一样的

    @ComponentScan

  • 作用:用于指定要扫描的包
  • 属性:

    value:用于指定要扫描的包。和basePackages的作用相同。

    @Configuration

  • 作用:表明当前类是spring的一个配置类。

    如果该类作为字节码参数传给了AnnotationConfigApplicationContext,则不用写此注解

    @Import

  • 作用:导入其他的配置类
  • 属性:

    value:用于指定要导入类的字节码

    @PropertyResource

  • **作用:**用于指定properties文件的位置
  • 属性:

    value:用于指定properties文件的位置

    classPath:位置

总结:在使用注解和xml配置spring的时候要搭配的使用,不能一味的用哪个来解决配置的问题,

实际的开发的过程中:哪个方便就直接使用哪个,或者公司要求哪个技术就直接用哪个。

xml和代码是分开的,查找的时候,还是要配置文件,

注解和代码是在一起的,方便观看,但是注解是写在类中的,如果要修改类的时候,我们就要重新修改注解的配置,比较麻烦。

改造的步骤:

1.在配置文件中配置要扫描的包

2.用注解的方式创建容器中的对象 注解方式的配置不需要set方法

用到注解 创建对象的注解,和 数据注入的注解

3.删除配置文件中创建对象的部分

我们只改变的是配置方面的代码,对于业务的代码就不会去修改,

我们使用IoC的主要的目的就是为了解耦,把创建对象的方式,交给spring来操作。

原文地址:https://www.cnblogs.com/mudi/p/9839263.html

时间: 2024-10-09 08:10:09

spring 的IoC注解的配置信息的相关文章

跟着刚哥学习Spring框架--通过注解方式配置Bean(四)

组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Respository:标识持久层组件 3.@Service:标识业务层组件 4.@Controller:标识表现层组件 Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称 当在组件类上使用了特定的注解之后, 还需要在 Spring 的配置文件

Spring的IOC注解开发入门1

基本知识点如下: 引入注解约束,配置组件扫描 类上的注解: @Conponent  @Controller @Service @Repository 普通属性的注解   @value 对象属性的注解    @Resource   @Autowired  @Qualifier Bean生命周期,初始化与销毁: @PostConstruct @PreDestroy Bean作用范围:@Scope("prototype")  , 默认是singleton 1.创建web项目引入jar包 除了

spring(读取外部数据库配置信息、基于注解管理bean、DI)

###解析外部配置文件在resources文件夹下,新建db.properties(和数据库连接相关的信息) driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/dbusername=rootpassword=root 开发步骤1)创建maven工程添加web.xml添加tomcat运行环境添加jar spring-webmvc,junit,commons-dbcp,mysql添加application.xml

Spring操作指南-IoC基础环境配置(基于注解手动装配)

Source: http://code.taobao.org/p/LearningJavaEE/src/LearningSpring002%20-%20Wiring%20beans%20with%20java/

spring笔记--通过注解(annotation)配置Bean

Spring能够在classpath下自动扫描,侦测和实例化具有特定注解的组件,这在Spring中成为组件扫描(Component scanning). 特定组件的注解包括: @Component:基本注解,标识了一个受spring管理的组件.   @Repository:标识持久层组件 @Service:标识服务层(业务层)组件 @Controller:标识表现层组件 对于扫描上的组件,Spring有默认的命名策略,使用非限定类名,第一个字母小写,也可以在注解中通过value属性值表示组件的名

Spring框架 IOC注解

Spring框架的IOC之注解方式的快速入门        1. 步骤一:导入注解开发所有需要的jar包        * 引入IOC容器必须的6个jar包        * 多引入一个:Spring框架的AOP的jar包,spring-aop的jar包        2. 步骤二:创建对应的包结构,编写Java的类        * UserService            -- 接口        * UserServiceImpl        -- 具体的实现类        3.

Spring注入,Ioc的具体配置

Spring框架的IOC注入: 一.Java部分代码: Person实体类: 1 package com.ioc; 2 3 import java.util.List; 4 import java.util.Map; 5 import java.util.Properties; 6 import java.util.Set; 7 8 import com.adviceAop.Dancer; 9 import com.aop.Singer; 10 11 /** 12 * Spring 各种类型的注

spring mvc 中web.xml配置信息解释

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servlet

023 使用@Value注解完成配置信息的注入

一 . 概述 在spring之中,对属性进行赋值是一个很常用的行为,我们常常将这些属性配置到我们的配置文件之中. 首先,我们完成对组件的属性的赋值. 二 . 测试 @Configuration public class ValueConfig { @Value("value") private String value; @Bean public String value() { return value; } } 我们使用@Value注解注入了一个属性值. 测试类: @Context