欢迎大家关注 “西安e群人”微信公众号,每天会准时为您送上优质的能量养分和行业的资讯信息,为你的事业助力。
本博客唯一全国性的技术交流官方QQ群-- 互联网资源共享群英阁:658233229。 加群的朋友请按照加群提示和群公告活动,欢迎你们的到来,希望认识更多的同行业的朋友。

项目中使用的spring 注解说明

以前在项目中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

}

}

posted on 2015-06-13 11:53  云舜言传  阅读(329)  评论(0编辑  收藏  举报