以前在项目中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. BootStrap母版页布局.子页面布局.BootstrapTable.模态框.警告框.html导出tabl生成Excel.HTML生成柱图.饼图.时间控件中文版

    如上就是很多后台管理系统的母版页布局. 左边一列模板.上面一列系统标识. 空白处充填子页面 以ASP.NET MVC为基础 引入bootstrap.js.bootstrap.css body: < ...

  2. IOC与依赖注入

    spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...

  3. 关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧

    项目中用到了对两个集合的帅选等操作,简单总结下 1.Linq操作多个Datable 可以通过AsEnumerable()方法对DataTable进行Linq操作 //获取数据表所有数据 DataTab ...

  4. iOS开发之蓝牙使用-建立连接的

    1.大佬笔记 CSDN 2.代码 github

  5. OpenCV自带dnn的Example研究(6)— text_detection

    这个博客系列,简单来说,今天我们就是要研究 https://docs.opencv.org/master/examples.html下的 6个文件,看看在最新的OpenCV中,它们是如何发挥作用的. ...

  6. CI框架定义判断POST GET AJAX

    CI框架当中并没有提供,类似tp框架中IS_POST,IS_AJAX,IS_GET的方法. 所有就得我们自己造轮子了.下面就介绍一下,如何定义这些判断请求的方法.其实很简单的. 首先打开constan ...

  7. P3398 仓鼠找sugar 树上路径相交判断

    \(\color{#0066ff}{题目描述}\) 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐 ...

  8. .NET Services Stack笔记之手写版

  9. springboot整合redis存放session

    y进入maven依赖: <!--spring boot 与redis应用基本环境配置 --> <dependency> <groupId>org.springfra ...

  10. C3算法之我见

    C3算法说到底就是merge算法,看了一些帖子,总结说得莫名其妙,大家也是抄来抄去,我试着用自己的话来把这个东西怎么操作的说清楚.当然了我也要抄一些别人的,但是我会 尽量把我认为别人没有讲清楚的那一部 ...