spring常用管理bean注解
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注解的更多相关文章
- Spring中管理Bean以及解析XML
Spring是分层的轻量级框架 以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为核心 应用Spring的好处 ...
- spring IOC装配Bean(注解方式)
1 Spring的注解装配Bean (1) Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean (2) Spring的框架中提供了与@Componen ...
- Spring中的@Bean注解
@Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理.产生这个Bean对象的方法Spring只会调用一次,随后这个 ...
- Spring @Configuration 和 @Bean 注解
@Configuration 和 @Bean 注解 带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源.@Bean 注解告诉 Spri ...
- spring boot通过@Bean注解定义一个Controller
功能需求 提供一个公共的jar包给其他业务模块依赖,需要在这个公共的jar中暴露一个restful API 采用spring auto config机制,在公共jar包中定义spring.factor ...
- spring常用的一些注解以及注解注入总结
常用的spring注解有如下几种: @Controller@Service@Autowired@RequestMapping@RequestParam@ModelAttribute@Cacheable ...
- Spring事务管理的注解方式
使用注解实现Spring的声明式事务管理,更加简单! 步骤: 1) 必须引入Aop相关的jar文件 2) bean.xml中指定注解方式实现声明式事务管理以及应用的事务管理器类 3)在需要添加事务控制 ...
- Spring中的@Bean注解、@Configuration注解、@Value
1.首先是注册bean类:@Component.@Responsitory.@Controller.@Service.Configuration这些注解是把要实例化的对象装化成一个bean,放到Ioc ...
- 详解SSH注解配置,bean注解、事物注解等
使用过SSH注解的屌丝们都知道,要想使用注解需要在applicationContext.xml配置文件里面开启注解配置,开启方式如下:1.头部声明需加入xmlns:context="http ...
随机推荐
- this指针与const成员函数
this指针的类型为:classType *const // 即指向类类型非常量版本的常量指针 所以,我们不能把this绑定到一个常量对象上 ===> 不能在一个常量对象上调用普通的 ...
- OJ错误命令解释
①Presentation Error (PE) : 虽然您的程序貌似输出了正确的结果,但是这个结果的格式有点问题. 请检查程序的输出是否多了或者少了空格(' ').制表符('\t')或者换行符('\ ...
- 软工第三次作业——个人PSP
9.22--9.26本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 预计时间 开始时间 结束时间 中断时间 实际用时 准备工作 学习重定向 ...
- window对象与document对象的区别
[window对象] 它是一个顶层对象,而不是另一个对象的属性,即浏览器的窗口. 属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个对象) fra ...
- MFC加速键
添加的函数: } // 解释说明 MFC对话框不自动处理加速键,你必须自己编写代码来做这件事情.为了理解弄清楚这是为什么,让我们回首Windows开发的历程,在使用C和原始的Windows ...
- Vue于React特性简单对比(一)
一,对象实体对比 vue的对象实体依然是html,而react的对象实体已经变味jsx,一种新的语法结构. vue的html与react的jsx都可以进行拆分,拆分成更细小的组件,组件之间可以传值. ...
- Jenkins系列-Jenkins修改主目录步骤说明
在使用Jenkins做持续集成过程中,在构建很多次后发现有时在构建的时候系统提示磁盘空间不足,此时检查发现Jenkins的主目录挂载区放在了服务器根目录下,占用空间较大,此时除了对服务器的磁盘进行扩容 ...
- 全面了解 Nginx 到底能做什么
来源:https://www.jianshu.com/p/8bf73d1a758c 前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可 ...
- asp.net异步上传
界面如下:
- RT thread 设备驱动组件之USART设备
本文以stm32f4xx平台介绍串口驱动,主要目的是:1.RTT中如何编写中断处理程序:2.如何编写RTT设备驱动接口代码:3.了解串行设备的常见处理机制.所涉及的主要源码文件有:驱动框架文件(usa ...