spring提供了多个注解声明Bean为spring管理的Bean

@Controller  声明此类是一个MVC类,通常与@RequestMapping一起使用

@Controller
@RequestMapping("user")
public class UserController { @RequestMapping("get/{id}")
public String getUser(@PathVariable String id){
return "";
}
}

如果访问/user/get/1,将调用getUser方法,并把参数1传给id。

@Service  声明此类是一个业务处理类,通常与@Transactional一起使用

@Service
@Transactional
public class UserServiceImpl implements UserService {
public void order(...){
...
}
}

@Repository  声明此类是一个dao类,访问数据库

@Repository
public class UserDao implements CrudDao<User,String> {
...
}
}

@RestController  等于@Controller+@ResponseBody,用于REST服务,可返回json格式字符串

@Component  声明此类是一个Spring管理的类,通常用于无法用上述注解描述的spring管理类

@Configuration  声明此类是一个配置类,通常与@Bean 配合使用

@Configuration
public class DataSourceConfig { @Bean(name="dataSource")
public DataSource dataSource(Environment env){
HikariDataSource ds=new HikariDataSource();
ds.setDriverClassName(env.getProperty("spring.dataSource.driver-class-name"));
ds.setJdbcUrl(env.getProperty("spring.dataSource.url"));
ds.setUsername(env.getProperty("spring.dataSource.username"));
ds.setPassword(env.getProperty("spring.dataSource.password"));
return ds;
}
}

上例DataSourceConfig 是一个spring容器配置类,配置了HikariDataSource。

@Bean  作用在方法上,声明该方法执行的结果返回结果是一个spring容器管理的Bean,参考上例

spring负责实例化Bean,可以提供一系列回调函数,进一步配置Bean

@PostConstruct  当bean被容器初始化后会调用@PostConstruct注解的方法

@Component
public class ExampleBena { @PostConstruct
public void init(){...}
}

@PreDestory  在容器被销毁之前调用@PreDestory注解的方法

@Service
public class ExampleBena { @PreDestory
public void clear(){...}
}

spring有两种方式来引用容器管理的Bean,一种是根据名字,为每个管理的bean指定一个名字,随后可以通过名字引用此Bean

@Service
@Qualifier("exampleBean")
  public class ExampleBean { }

在其他Bean中使用注解@Qualifier来引用

@Service
public class AnotherExampleBean {   @Qualifier("exampleBean")
ExampleBean bean;
}

另一种是根据类型,使用注解@Autowired

@Service
public class ExampleBean { } @Service
public class AnotherExampleBean {
  @Autowired
ExampleBean bean;
}

在一个spring管理的Bean中,可以通过@Autowired声明对其他Bean的引用,作用于属性或者构造函参数,甚至是方法调用参数上。

上面两个注解是spring提供的,还有一个@Resource注解具体参考 Spring注解@Resource和@Autowired的区别

spring常用管理bean注解的更多相关文章

  1. Spring中管理Bean以及解析XML

    Spring是分层的轻量级框架 以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为核心 应用Spring的好处 ...

  2. spring IOC装配Bean(注解方式)

    1 Spring的注解装配Bean (1) Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean (2) Spring的框架中提供了与@Componen ...

  3. Spring中的@Bean注解

    @Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理.产生这个Bean对象的方法Spring只会调用一次,随后这个 ...

  4. Spring @Configuration 和 @Bean 注解

    @Configuration 和 @Bean 注解 带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源.@Bean 注解告诉 Spri ...

  5. spring boot通过@Bean注解定义一个Controller

    功能需求 提供一个公共的jar包给其他业务模块依赖,需要在这个公共的jar中暴露一个restful API 采用spring auto config机制,在公共jar包中定义spring.factor ...

  6. spring常用的一些注解以及注解注入总结

    常用的spring注解有如下几种: @Controller@Service@Autowired@RequestMapping@RequestParam@ModelAttribute@Cacheable ...

  7. Spring事务管理的注解方式

    使用注解实现Spring的声明式事务管理,更加简单! 步骤: 1) 必须引入Aop相关的jar文件 2) bean.xml中指定注解方式实现声明式事务管理以及应用的事务管理器类 3)在需要添加事务控制 ...

  8. Spring中的@Bean注解、@Configuration注解、@Value

    1.首先是注册bean类:@Component.@Responsitory.@Controller.@Service.Configuration这些注解是把要实例化的对象装化成一个bean,放到Ioc ...

  9. 详解SSH注解配置,bean注解、事物注解等

    使用过SSH注解的屌丝们都知道,要想使用注解需要在applicationContext.xml配置文件里面开启注解配置,开启方式如下:1.头部声明需加入xmlns:context="http ...

随机推荐

  1. Java 二维数组

    在 Java 中,二维数组与一维数组一样,但是不同于 C 中的二维数组: 1. 在 Java 中,二维数组可以看成是以数组为元素的数组,例如:  int a[][] = {{1,2},{3,4,5,6 ...

  2. C#中pictureBox笔记

    if (File.Exists(productInfo.预览图路径)) this.picPreview.Image = BitmapFactory.Alloc(productInfo.预览图路径, f ...

  3. endnote的安装和使用必备的几个步骤(简单有效整理版)

    endnote:文献检索和管理工具 一 准备工作 endnote大客户版/破解版获取地址:http://blog.sina.com.cn/s/blog_6de000c20101n7ac.html 之所 ...

  4. 刚装的vs无法运行正确的程序

  5. 委托,事件,lambda表达式

    开篇说明三个点: 委托是一种类型 事件是委托的实例 lambda表达式是一个方法(匿名方法) [未完待续]

  6. datepicker约束开始时间和结束时间

    datepicker约束开始时间和结束时间作用就是:选择要搜索的日期范围. <!DOCTYPE html> <html lang="en"> <hea ...

  7. P1315 观光公交

    题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...

  8. ssm框架pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. POJ3690:Constellations——题解

    http://poj.org/problem?id=3690 题目大意:给一个图和几个子图,判断有多少种子图在原图出现过. —————————————————————— 二维哈希即可,操作看代码,我觉 ...

  10. 洛谷 P4735 最大异或和 解题报告

    P4735 最大异或和 题目描述 给定一个非负整数序列\(\{a\}\),初始长度为\(N\). 有\(M\)个操作,有以下两种操作类型: A x:添加操作,表示在序列末尾添加一个数\(x\),序列的 ...