zoukankan      html  css  js  c++  java
  • Spring之使用Annotation注解开发项目

    我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率。spring中要使用annotation,需要在配置文件中增加:

     

    <beans xmlns="http://www.springframework.org/schema/beans" 

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

     xmlns:context="http://www.springframework.org/schema/context"  

      xsi:schemaLocation="http://www.springframework.org/schema/beans   

      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   

       http://www.springframework.org/schema/context   

       http://www.springframework.org/schema/context/spring-context-2.5.xsd">   

      

    <context:component-scan  base-package="com.bjsxt"/>   

    </beans> 

     

     

    我们只需要在相关类的属性前或者set方法前增加:

    } @Resource (推荐) 

    ◦ 默认按名称装配

    } @AutoWired(不推荐) 

    ◦ 默认按类型装配。根据属性类型,在容器中跟该类型匹配的bean。

    } 示例:

    @Resource(name="userDao2")  //不指定名字,默认就是属性名。一般不需单独指定 

    userSeviceImpl中代码如下:

    public class UserServiceImpl implements UserService {

     

    @Resource

    private UserDao userDao;    // = new UserDaoImpl();

     

    @Override

    public void add(User user) {

    userDao.add(user);

    }

     

    public UserDao getUserDao() {

    return userDao;

    }

     

    public void setUserDao(UserDao userDao) {

    this.userDao = userDao;

    }

     

    }

     

     

    @Resource用法总结:

    按照名字装配

    @Resource(name="ud")

    private UserDao userDao;

    直接找nameudbean

    @Resource

    private UserDao userDao;

    直接找nameuserDaobean

    如果找到这个bean,则注入;如果没有name=userDaobean,则找接口UserDao下得唯一实现类。如果接口UserDao有多个实现类,则抛出异常。

    按照类型装配

    @Resource(type=UserDaoImpl.class)

    private UserDao userDao;

    按照类型装配。

     

    IOC容器管理的bean作用域

    IOC容器中的bean,我们可以使用单例模式、也可以使用工厂模式。甚至可以将bean放入requestsession等作用域中。那么,如何处理bean?我们可以通过<bean>的scope属性设置,默认为singleton。

     

    作用域 

    说明 

    singleton(默认) 

    一个bean类型对应一个对象 

    prototype 

    一个bean类型对应多个对象。每次从容器中取到的对象都是新对象 

    request 

    在基于webspring  applicationcontext才有效。 

    session 

    global  session 

     

     

    自动扫描将bean纳入IOC容器管理(spring2.5新增)

    spring  2.5新增自动扫描bean的功能,大大简化了配置文件中的配置内容。将程序员从繁琐的配置中解放出来!xml文件需要增加声明:

     

    <beans xmlns="http://www.springframework.org/schema/beans" 

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

     xmlns:context="http://www.springframework.org/schema/context"  

      xsi:schemaLocation="http://www.springframework.org/schema/beans    

      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    

       http://www.springframework.org/schema/context   

       http://www.springframework.org/schema/context/spring-context-2.5.xsd">   

      

      <context:component-scan  base-package="com.sxt"/> 

        <!-- 有了本配置,<context:annotation-config />可以不要。 -->

        <!-- 会扫描该包下的子类,以及该包子包下的子类 -->

    </beans> 

     

    配置<bean>的根本目的,就是让spring容器知道这个bean是要加载的。我们也可以通过注解来实现让spring知道哪些bean需要加载。

    ◦ @Service:标记业务层bean 

    ◦ @Controller:标记控制层,比如:struts中的Action 

    ◦ @Repository:标记数据访问组件,即DAO类

    ◦ @Component:当组件不好归类时使用该标记

     

    为我们相关类增加注解后,spring会自动扫描com.sxt包及该包下所有子类!这样就将我们从繁琐的配置文件配置中解放出来! 让我们使用spring更加简单!

  • 相关阅读:
    微信开发返回验证来源方式代码
    Yii 开发过程 tips
    PHP 搜索分词实现代码
    PHP 中文字符串截取
    Ubuntu16.04设置静态ip
    Linux(Ubuntu18.04)安装Chrome浏览器
    ubuntu18.04安装redis
    ubuntu18.04虚拟机安装docker
    虚拟机安装ssh,关闭防火墙
    面试送命题,你为什么从上家公司离职?(面试题总结大全)
  • 原文地址:https://www.cnblogs.com/quchengfeng/p/4112609.html
Copyright © 2011-2022 走看看