文档章节

项目中使用的spring 注解说明

思维80
 思维80
发布于 2015/06/13 11:55
字数 407
阅读 11
收藏 0

以前在项目中spring 的依赖注入使用 xml 配置,现在使用 注解(Annotation) 来实现配置。

1声明bean

1.1实例

有类:

public class MyBean{

    //do something

}

 

xml 方式:

<bean id="myBean"class="com.bean.MyBean"/>

 

注解方式:

@Component("myBean")

public class MyBean {

    //do something

}

 

1.2说明

除了使用 @Component 注解,还可以使用 @Controller,  @Service,  @Repository 。一般情况下 service 使用 @Service ,dao 使用 @Repository ,其他的使用 @Component(@Controller 一般在使用 spring mvc 的时候使用)。

 

1.2.1配置scope (生命周期)

spring 默认为 "singleton" 单例,没有特别原因建议使用"prototype"

 

xml 方式:

<bean id="myBean" class="com.bean.MyBean" scope="prototype"/>

 

注解方式:

@Component("myBean")

@Scope("prototype")

public class MyBean {

}

2.注入bean

2.1实例

将 myBean 注入到 myBean2

 

有类:

public class MyBean{

    //do something

}

public class MyBean2 {

private MyBean myBean;

//do someting

}

 

xml 方式:

<bean id="myBean" class="com.bean.MyBean"/>

<bean id="myBean2"class="com.bean.MyBean2">

   <propertyname="myBean" ref="myBean"/>

</bean>

 

注解方式:

@Component("myBean")

public class MyBean {

    //do something

}

@Component("myBean2")

public class MyBean2 {

    @Autowired

private MyBean myBean;

//do someting

}

2.2说明

注入bean 可以使用以下注解

@Resource,  @Autowired,  @Inject

2.2.1注入方式

a)属性注入

@Component

public class MyBean2 {

Autowired

private MyBeanmyBean;

}

 

b)方法注入

@Component

public class MyBean2 {

    private MyBean myBean;

Autowired

private voidsetMyBean (MyBean myBean){

    this.myBean = myBean;

}

}

 

c)构造方法注入

@Component

public class MyBean2 {

    private MyBean myBean;

Autowired

public MyBean2(MyBean myBean){

    this.myBean = myBean;

}

}

3.其他

依赖注入的层次最好符合这样的约束:action 使用 service ;service 使用 dao.

 

3.1注解使用示例

public interface UserDao {

}

 

//通过 @Compoent 声明 spring bean,@Repository

@Scope("prototype")

public class UserDaoImpl implements UserDao {

   //省略...

}

 

/*************************性感的分隔线**************************/

public interface UserService {

}

 

@Service

@Scope("prototype")

public classUserServiceImpl implements UserService {

 

    //通过 @Autowired 注解注入 SysUserLoginDao 依赖

    @Autowired

    private UserDao userDao;

 

    //省略

}

 

 

public class UserAction {

    @Autowired

privateUserService userService;

 

public Stringexecute(){

    //do something

}

}


本文转载自:

共有 人打赏支持
思维80
粉丝 8
博文 111
码字总数 42366
作品 0
西安
程序员
【Spring Web MVC】Spring Web MVC 注解开发环境搭建

1、创建maven项目 创建一个名为:springwebmvc-first的maven项目 2、添加依赖包 要使用springWebMVC注解开发需要spring的以下模块: spring-context spring-web spring-webmvc 在pom.xml文件...

666B
2014/06/28
0
0
Redis 分布式锁 - spring-boot-lock-starter

基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目 快速开始 spring boot项目接入 1.添加lock starter组...

敏敏_特穆尔
09/21
0
0
spring boot框架学习2-spring boot核心(1)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/27
0
0
spring boot框架学习3-spring boot核心(2)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/26
0
0
spring-boot-klock-starter 分布式锁 v1.2 版本发布

本次发版修复优化问题如下,有使用的建议更新 1.线程安全问题:在本地多线程,指定业务key的情况下,导致的线程安全问题 2.优化获取锁实例的方式 spring-boot-klock-starter 基于redis的分布...

KL博客
08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链入门教程以太坊源码分析ethdb源码分析

兄弟连区块链入门教程以太坊源码分析ethdb源码分析,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退...

兄弟连区块链入门教程
22分钟前
1
0
Eclipse下忽略掉node_modules目录相关配置

https://blog.csdn.net/yzf913214/article/details/72872523

张宏亮1982
24分钟前
1
0
在Python-dataframe中如何把出生日期转化为年龄?

我们在做数据挖掘项目或大数据竞赛时,如果个体是人的时候,获得的数据中可能有出生日期的Series,举个简单例子,比如这样的一些数: # -*- coding: utf-8 -*- import pandas as pd from ...

Mr_zebra
26分钟前
1
0
Android入门—activity生命周期

activity生命周期如下所示: onCreate()方法 创建activity时使用onStart()方法 当activity界面变为用户可见时调用onResume()方法 当activity界面获取到焦点时调用(界面按钮可点击,...

haoyuehong
28分钟前
1
0
使用C++ Builder 6编译产生错误

错误提示: [C++ Error] E2075 Incorrect project override option: Files\Borland\CBuilder6\lib\vcl60.csm[C++ Error] E2075 Incorrect project override option: Files\Borland\CBuilde......

simpower
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部