spring常用注解
更新时间:2023-10-11 00:38:01 阅读量: 综合文库 文档下载
Spring4.1.6 常用注解
@Controller @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheFlush @Resource @PostConstruct @PreDestroy @Repository
@Component (不推荐使用) @Scope
@SessionAttributes @InitBinder @Required @Qualifier
@Controller
? 例如 @Controller
public class SoftCreateController extends SimpleBaseController {} ? 或者
@Controller(\ ? 说明
@Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写
@Service
? 例如 @Service
public class SoftCreateServiceImpl implements ISoftCreateService {} ? 或者
@Service(\ ? 说明
@Service 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写
@Autowired
? 例如 @Autowired
private ISoftPMService softPMService; ? 或者
@Autowired(required=false)
private ISoftPMService softPMService = new SoftPMServiceImpl(); ? 说明
@Autowired 根据bean 类型从spring 上线文中进行查找,注册类型必须唯一,否则报异常。
与@Resource 的区别在于,@Resource 允许通过bean 名称或bean 类型两种方式进行查找@Autowired(required=false) 表示,如果spring 上下文中没有找到该类型的bean 时, 才会使用new SoftPMServiceImpl();
@Autowired 标注作用于 Map 类型时,如果 Map 的 key 为 String 类型,则 Spring 会将容器中所有类型符合 Map 的 value 对应的类型的 Bean 增加进来,用 Bean 的 id 或 name 作为 Map 的 key。
@Autowired 还有一个作用就是,如果将其标注在 BeanFactory 类型、ApplicationContext 类型、ResourceLoader 类型、ApplicationEventPublisher 类型、MessageSource 类型上,那么 Spring 会自动注入这些实现类的实例,不需要额外的操作。
@RequestMapping
? 类
@Controller
@RequestMapping(\copyright www.itxxz.com public class BbtForumController {
@RequestMapping(params = \public String listBoardTopic(int topicId,User user) {} } ? 方法
@RequestMapping(\
@RequestMapping(value=\@RequestMapping(value
=
\
params
=
{ \ ? 说明
@RequestMapping 可以声明到类或方法上
? 参数绑定说明
如果我们使用以下的 URL 请求:
http://localhost/itxxzSpring4?method=listBoardTopic&topicId=1&userId=10&userName=tom
topicId URL 参数将绑定到 topicId 入参上,而 userId 和 userName URL 参数将绑定到 user 对象的 userId 和 userName 属性中。和 URL 请求中不允许没有
\,并被保存到model 里@ModelAttribute 声明在方法上,表示该方法的返回值被保存到model 里
@Cacheable 和@CacheFlush
? @Cacheable :声明一个方法的返回值应该被缓 存 例如:@Cacheable(modelId = \
? @CacheFlush :声明一个方法是清空缓存的触发器 例如:@CacheFlush(modelId = \ ? 说明
要配合缓存处理器使用
@Resource
? 例如 @Resource
private DataSource dataSource; // inject the bean named 'dataSource' ? 或者
@Resource(name=\@Resource(type=DataSource.class) ? 说明
@Resource 默认按bean 的name 进行查找,如果没有找到会按type 进行查找, 此时与@Autowired 类 似.
在没有为 @Resource 注解显式指定 name 属性的前提下,如果将其标注在 BeanFactory 类型、ApplicationContext 类型、ResourceLoader 类型、ApplicationEventPublisher 类型、MessageSource 类型上,那么 Spring 会自动注入这些实现类的实例,不需要额外的操作。此时 name 属性不需要指定 ( 或者指定为\,否则注入失败;
@PostConstruct 和@PreDestroy
? @PostConstruct
在方法上加上注解@PostConstruct ,这个方法就会在Bean 初始化之后被Spring 容器执 行
(注:Bean 初始化包括,实例化Bean ,并装配Bean 的属性(依赖注入))。
? @PreDestroy
在方法上加上注解@PreDestroy ,这个方法就会在Bean 被销毁前被Spring 容器执行。
@Repository
? 与@Controller 、@Service 类似,都是向spring 上下文中注册bean ,不在赘述。
@Component (不推荐使用)
@Component 是所有受Spring 管理组件的通用形式,Spring 还提供了更加细化的注解形式: @Repository 、@Service 、@Controller ,它们分别对应存储层Bean ,业务层Bean ,和展示层Bean 。
目前版本(2.5 )中,这些注解与@Component 的语义是一样的,完全通用, 在Spring 以后的版本中可能会给它们追加更多的语义。 所以,我们推荐使用@Repository 、@Service 、@Controller 来替代@Component 。
@Scope
? 例如
@Scope(\@Repository()
public class UserSessionBean implementsSerializable {} ? 说明
在使用XML 定义Bean 时,可以通过bean 的scope 属性来定义一个Bean 的作用范围,
同样可以通过@Scope 注解来完成
@Scope中可以指定如下值:
singleton:定义bean的范围为每个spring容器一个实例(默认值) prototype:定义bean可以被多次实例化(使用一次就创建一次) request:定义bean的范围是http请求(springMVC中有效) session:定义bean的范围是http会话(springMVC中有效) global-session:定义bean的范围是全局http会话(portlet中有效)
@SessionAttributes
? 说明
Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中, 以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。
这一功能是通过类定义处标注 @SessionAttributes 注解来实现的。 @SessionAttributes 只能声明在类上,而不能声明在方法上。 ? 例如
@SessionAttributes(\将ModelMap 中属性名为currUser 的属性 @SessionAttributes({\@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types = {User.class,Dept.class},value={\
@InitBinder
? 说明
如果希望某个属性编辑器仅作用于特定的 Controller ,
可以在 Controller 中定义一个标注 @InitBinder 注解的方法, 可以在该方法中向 Controller 了注册若干个属性编辑器 ? 例如 @InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(\dateFormat.setLenient(false);
正在阅读:
spring常用注解10-11
数学正弦型函数y=Asin(ωx+φ)的图象及应用07-29
国际十进分类法(UDC)04-26
商业银行数据治理与应用 —以光大银行为例12-24
工程可以签证的明细10-08
奉献的反义词02-21
连云港市2012年公务员招考面试人员名单 - 图文11-15
人教a版必修5学案:3.3二元一次不等式(组)与简单的线性规划问03-08
高一数学家教10下学期小复习07-21
第二章导数与微分习题册答案05-27
- 企业安全培训试题题库
- 《WEB应用开发》复习题
- 2018届河南省新乡市高三第三次模拟测试英语试题Word版含答案
- 山东省建设工程优质结构评审标准(试行)
- 2016-2022年中国MEMS行业分析及发展趋势预测报告 - 图文
- 工程材料习题和练习 - 图文
- 2013--2014年小学六年级数学毕业水平检测卷及答案
- 江苏省2017-2018学年高考模拟历史试题分解(现代世界经济) Word版
- 移动通信实验指导书
- 2017-2018年最新审定新人教版六年级语文新人教版小学语文六年级
- 会展案例分析教案
- 数据库复习题
- 情智作文之学会选材
- 高一年级十月月考地理试题
- 河南省教育科学“十三五”规划2018年度一般课题立项名单
- 大学生宿舍文化现象调查与分析
- 山东省潍坊市2010届高三第二次模拟考试 理综 Word版
- 风险管理简答题
- 大连广播电视大学
- 民航安全管理经典论文
- 注解
- 常用
- spring
- java编程游戏之网络象棋
- 《冷热与温度》教案设计
- 2012-2013高等数学第一学期期末考试(张家港校区理工类)试卷及答案
- 雨中的树思想汇报
- 英语中各种时态下的各种句型变换总结
- 中国传统节日的来源
- 诗歌鉴赏《和董传留别》腹有诗书气自华
- 《汽轮机本体检修工(第二版)》高级技师理论试卷
- 以校为本,推进综合实践活动课程建设
- 红岗村党员积分制管理考核表
- 《现代汉语词典》第6版全新出版 增收新词三千多条等
- 矿业公司2014年安全生产大会主持词
- 超星《大学生安全教育》新期末考试答案
- 2现代混合经济复习题(萨缪尔森)
- 09电本数字电路实训指导计划 - 图文
- 景观灯具维护养护工程施工组织设计方案
- 三年级语文 荷花 精品教案 - 图文
- 《毕业生就业推荐表》填写说明
- 2019-2020年高三一轮复习教案:大气
- 深圳市机关事业单位雇员管理试行办法