本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Spring中@Component与@Bean的区别
manongba · 369浏览 · 发布于2019-09-18 +关注

@Component和@Bean的目的是一样的,都是注册bean到Spring容器中。

 

@Component  VS  @Bean

  @Component 和 它的子类型(@Controller, @Service and @Repository)注释在类上。告诉Spring,我是一个bean,通过类路径扫描自动检测并注入到Spring容器中。

  @Bean不能注释在类上,只能用于在配置类中显式声明单个bean。意思就是,我要获取这个bean的时候,spring要按照这种方式去获取这个bean。默认情况下@Bean注释的方法名作为对象的名字,也可以用name属性定义对象的名字。

 

所有组件类型及其用途

组件注解用途
@Component标注最普通的组件
@Controller标注控制层(spring-mvc的注解)(如:*Controller)
@Service标注业务层(如:*Service)
@Repository标注持久层(如:*Dao)

所有组件类型都以相同的方式处理。子类型仅仅是标记,有利于代码可读性而不是特性。

 验证代码如下:

@Controller

@RequestMapping("/web")

public class WebController {

    @ResponseBody

    @RequestMapping("/msg")

    public String message(){

        return "msg";

    }

}
@Component

@RequestMapping("/web")

public class WebController {

    @ResponseBody

    @RequestMapping("/msg")

    public String message(){

        return "msg";

    }

}
@Service

@RequestMapping("/web")

public class WebController {

    @ResponseBody

    @RequestMapping("/msg")

    public String message(){

        return "msg";

    }

}

访问url=locahost:8080/web/msg,三段代码均返回字符串msg。(此web项目我自己用的端口8080)

 

@Bean的使用

// Just a POJO
 public class MessageBuilder {
      public String getMsg(){
               return "msgBuilder";5     }6 }



import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
// Let's turn the POJO into a bean
@Configuration
public class AppConfig {
    @Bean
    public MessageBuilder messageBuilder(){
        return new MessageBuilder();
    }
}



@Controller
@RequestMapping("/web")
public class WebController {
    // Finally, hook it up
    @Autowired
    private MessageBuilder messageBuilder;
    @ResponseBody
    @RequestMapping("/msg")
    public String message(){
        return messageBuilder.getMsg();
    }
}

相关推荐

PHP实现部分字符隐藏

沙雕mars · 1312浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 896浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 957浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 953浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1077浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页