Spring中使用注解代替xml配置文件

来源:互联网 发布:淘宝众筹怎么申请 编辑:程序博客网 时间:2024/05/16 11:25

在使用Spring的使用过程中我们需要进行相关配置文件applicationContext.xml的配置,除此之外我们也可以使用注解的方式来代替xml配置文件。


1.使用步骤


(1)为住配置文件引入新的约束(命名空间),需要导入约束spring-context.xsd约束文件


(2)需要导入包spring-aop否则运行的时候会报错


(3)开启使用注解代替配置文件,使用案例如下:

package entity;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Component;@Component("student")@Scope(scopeName="singleton")public class Student {@Value("尚光荣")private String name;@Value("22")private Integer age;//@Autowired@Resource(name="car")private Car car;public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Student() {System.out.println("Student对象创建了");}@PostConstructpublic void init() {System.out.println("我是初始化方法");}@PreDestroypublic void destory() {System.out.println("我是销毁方法");}@Overridepublic String toString() {return "Student [" + (name != null ? "name=" + name + ", " : "") + (age != null ? "age=" + age + ", " : "")+ (car != null ? "car=" + car : "") + "]";}}
2.注解解释

(1)@Component(" "):早期注解用于注册对象

(2)@Service(" "):用于注册service层的对象

(3)@Controller(" "):用于注册Web层次的对象

(4)@Repository(" "):用于注册Dao层次的对象

(5)@Scope(" "):表示对象作用范围

(6)@Value(" "):为成员变量赋值,可以放在成员变量上,也可以放在set方法上面。第一种方式是通过反射Field方式赋值破环了封装型,推荐使用第二种方式

(7)@Autowired(" "):自动为对象类型的成员变量赋值需要配合注解@Qualifier(" ")使用,用来指定唯一的注入对象

(8)@Resource(" "):这是一种比第七种方式更加方便的为对象类型的成员变量进行赋值,推荐使用

(9)@PostConstruct:表示这是初始化方法,在构造方法执行完之后执行

(10)@PreDestory:表示这是一个销毁方法,在对象完全销毁前调用

注意:只有类型是Singleton的对象,spring容器才会进行完整生命周期的管理。类型是prototype的对象,当容器创建完对象之后就不会再去进行管理



阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 qt包含文件 科大讯飞java 1,定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。2,定义一 FlyAudioVoice 2023 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 Minecraft 1204:剔除相关数 平坦衰落信道2FSK差错性能分析 平坦衰落信道 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 手机是现在人们必不可少、最重要的通讯工具,拥有一款简单、实用、易用的手机通讯录,将会使你的手机更加好 手机是现在人们必不可少、最重要的通讯工具,拥有一款简单、实用、易用的手机通讯录,将会使你的手机更加好 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 61858 61850 全国市级城市拼音 pycr rpyc pry 安德地产公司 安德地产年报 pycharm安装 高文 李皓 王煊 赵瀚 夜的命名术 我的治愈系游戏 全职艺术家 星门 长夜余火 不科学御兽 十方武圣 黎明之剑 深空彼岸 稳住别浪 这个人仙太过正经 从红月开始 林渊 时宇