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

 更新时间:2017年12月14日 13:44:08   作者:光与热  
本篇文章主要介绍了利用注解配置Spring容器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了利用注解配置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

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

相关文章

  • IDEA中使用jclasslib插件可视化方式查看类字节码的过程详解

    IDEA中使用jclasslib插件可视化方式查看类字节码的过程详解

    查看JAVA字节码有两种方式一种是使用 jdk命令 javap,还有一种就是 使用 插件了,今天给大家分享IDEA中使用jclasslib插件可视化方式查看类字节码的过程详解,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Netty分布式server启动流程Nio创建源码分析

    Netty分布式server启动流程Nio创建源码分析

    这篇文章主要介绍了Netty分布式server启动流程Nio创建源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • 解决Maven项目本地公共common包缓存问题

    解决Maven项目本地公共common包缓存问题

    这篇文章主要介绍了解决Maven项目本地公共common包缓存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 解决springcloud-eureka注册时的ip问题

    解决springcloud-eureka注册时的ip问题

    这篇文章主要介绍了解决springcloud-eureka注册时的ip问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 使用Java实现DNS域名解析的简单示例

    使用Java实现DNS域名解析的简单示例

    这篇文章主要介绍了使用Java实现DNS域名解析的简单示例,包括对一个动态IP主机的域名解析例子,需要的朋友可以参考下
    2015-10-10
  • 基于java时区转换夏令时的问题及解决方法

    基于java时区转换夏令时的问题及解决方法

    下面小编就为大家分享一篇基于java时区转换夏令时的问题及解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 详解Springboot对多线程的支持

    详解Springboot对多线程的支持

    Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor来创建一个基于线城池的TaskExecutor。这篇文章给大家介绍Springboot对多线程的支持,感兴趣的朋友一起看看吧
    2018-07-07
  • 10张图总结出并发编程最佳学习路线

    10张图总结出并发编程最佳学习路线

    这篇文章主要介绍了并发编程的最佳学习路线,文中通过图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Java编程一道多线程问题实例代码

    Java编程一道多线程问题实例代码

    这篇文章主要介绍了Java编程一道多线程问题实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 利用Java实现调用http请求

    利用Java实现调用http请求

    在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。本文就为大家准备了几个java调用http请求的几种常见方式,需要的可以参考一下
    2022-08-08

最新评论