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

}

}

项目中使用的spring 注解说明的更多相关文章

  1. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

  2. Java Web学习系列——Maven Web项目中集成使用Spring

    参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...

  3. 在web项目中搭建一个spring mvc + spring + mybatis的环境

    介绍:本文中示范搭建一个ssm环境的框架:使用流程就是客户端通过http请求访问指定的接口,然后由服务器接受到请求处理完成后将结果返回. 本项目请求流程细节介绍:由客户端请求到指定的接口,这个接口是个 ...

  4. 在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?

    (1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用. (2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为 ...

  5. Web项目中加载Spring配置的常用方法

    1.web.xml中添加配置 <web-app>      <context-param>         <param-name>contextConfigLoc ...

  6. 为什么java web项目中要使用spring

    1 不使用spring的理由 spring太复杂,不利于调试. spring太复杂,不利于全面掌控代码. spring加载bean太慢. 等等. 2 对不使用spring理由的辩驳 spring io ...

  7. Axis2在Web项目中整合Spring

    一.说明: 上一篇说了Axis2与Web项目的整合(详情 :Axis2与Web项目整合)过程,如果说在Web项目中使用了Spring框架,那么又改如何进行Axis2相关的配置操作呢? 二.Axis2 ...

  8. Spring Boot项目中使用Mockito

    本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试 ...

  9. Spring在Web项目中的三种启动加载的配置

    在最近的项目中,使用到了spring相关的很多东西,有点把spring的配置给搞混了,从网上查到的资料以及整理了一下. 在Web项目中,启动spring容器的方式有三种,ContextLoaderLi ...

随机推荐

  1. 百度地图 JS API开发Demo01

    百度地图DEMO     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  2. JavaScript 测试和捕捉(try与catch)

    JavaScript 测试和捕捉 try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try ...

  3. console的使用

    一.显示信息的命令 console.log("normal"); // 用于输出普通信息 console.info("information"); // 用于输 ...

  4. 《OD面试》之多线程高并发

    参考: 聊聊并发(三)——JAVA线程池的分析和使用 Java Executor并发框架(三)ThreadPoolExecutor 队列缓存策略 控制并发线程数的Semaphore.Scheduled ...

  5. hdu4658(广义五边形&分割函数2)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4658 题意:f(x) 为将 x 分成其他数和的形式的方案数.对于 t 组输入,输出 f(xi, k), ...

  6. 「BZOJ1010」[HNOI2008] 玩具装箱toy(斜率优化)

    P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为 1⋯N1\cdots N1⋯N ...

  7. SAP 740GUI客户端快捷方式取消密码登陆

    客户端电脑:WIN10 专业版64位. 1. 进入注册表编辑器(regedit) .进入如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP\SAPLogo ...

  8. SQL基础(一)

    经过这段时间对SQL的基础学习,下面对自己的学习做个总结或者也可以说是个回顾吧! 我练习的是在oracle数据库平台上,并且安装了PLSQL Developer工具.下面是我从小白开始一路学习的回顾: ...

  9. 合并queryset

    今天在实现搜索时遇到一个问题,如何同时搜索model里面的title以及content和category字典 contents = Blog.objects.filter(content__conta ...

  10. 记录下自己安装cuda以及cudnn

    之前已经装过一次了,不过没有做记录,现在又要翻一堆博客安装,长点记性,自己记录下. 环境 ubuntu16.04 python2.7 商家送过来时候已经装好了显卡驱动,所以省去了一大麻烦. 剩下的就是 ...