欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用注解配置Spring容器的方法

程序员文章站 2023-12-10 14:12:46
本文介绍了利用注解配置spring容器的方法,分享给大家,具体如下: @configuration标注在类上,相当于将该类作为spring的xml的标签 @co...

本文介绍了利用注解配置spring容器的方法,分享给大家,具体如下:

@configuration标注在类上,相当于将该类作为spring的xml的标签

@configuration
public class springconfiguration {
 public springconfiguration() {
  system.out.println("初始化spring容器");
 }
}

主函数进行测试

public class main {
 public static void main(string[] args) {
  applicationcontext context = new annotationconfigapplicationcontext(springconfiguration.class);

 }
}

利用注解annotationconfigapplicationcontext加载applicationcontext

运行结果如下

信息: refreshing org.springframework.context.annotation.annotationconfigapplicationcontext@2e5d6d97: startup date [sat dec 09 11:29:51 cst 2017]; root of context hierarchy
初始化spring容器

利用@bean向容器中添加bean实例

public class user {
 private string username;
 private int age;

 public user(string username, int age) {
  this.username = username;
  this.age = age;
 }

 public void init(){
  system.out.println("初始化user...");
 }

 public void say() {
  system.out.println(string.format("hello,my name is %s,i am %d years old ", username, age));
 }

 public void destory(){
  system.out.println("销毁user ...");
 }
}

@configuration
public class springconfiguration {
 public springconfiguration() {
  system.out.println("初始化spring容器");
 }
 //@bean注解注册bean,同时制定初始化和销毁的方法
 @bean(name = "user", initmethod = "init", destroymethod = "destory")
 @scope("prototype")
 public user getuser() {
  return new user("tom", 20);
 }
}

@bean注解在返回实例的方法上,如果没有指定bean的名字,则默认与标注的方法名称相同

@bean注解默认作用域为单例的singleton作用域

利用@componentscan添加自动扫描@service,@ripository,@controller,@component注解

@component
public class cat {
 public cat() {
 }
 public void say() {
  system.out.println("i am a cat" );
 }
}

@configuration
@componentscan(basepackages = "com.spring.annotation.ioc")
public class springconfiguration {
 public springconfiguration() {
  system.out.println("初始化spring容器");
 }
 //@bean注解注册bean,同时制定初始化和销毁的方法
 @bean(name = "user", initmethod = "init", destroymethod = "destory")
 @scope("prototype")
 public user getuser() {
  return new user("tom", 20);
 }
}

利用basepackages扫描包配置路径

运行结果如下

初始化spring容器
初始化user...
hello,my name is tom,i am 20 years old 
i am a cat

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。