zoukankan      html  css  js  c++  java
  • 项目中使用的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

    }

    }

  • 相关阅读:
    【字符编码】字符编码 && Base64编码算法
    【JVM】JVM系列之执行引擎(五)
    【JVM】JVM系列之类加载机制(四)
    【JVM】JVM系列之Class文件(三)
    【知识积累】DES算法之C#加密&Java解密
    appium多机并行测试
    Jenkins 传递自定义的参数
    python对ftp进行操作
    Linux下ftp服务器搭建
    appium +ios 判断元素是否存在,排除visible=“false”的数据
  • 原文地址:https://www.cnblogs.com/gxbk629/p/4573252.html
Copyright © 2011-2022 走看看