码迷,mamicode.com
首页 > 编程语言 > 详细

Spring框架学习(三)Spring的注解开发

时间:2016-08-24 17:01:25      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

Spring-注解开发

1.在applicationContext.xml中添加这一句代码能够让IOC容器加载的时候去扫描对应4种注解的类:

<context:component-scan base-package="com.bjsxt.tmall"></context:component-scan>
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 在IOC容器加载的时候,自动扫描tmall包及子包中拥有 以下4种注解的类:
        @Respository - 对应DAO
        @Service - 对应Service
        @Controller - 对应Action
        @Component - 其他的情况
     -->
    <context:component-scan base-package="com.bjsxt.tmall"></context:component-scan>
</beans>

2.现在来开发各层的代码:

(1)首先是action:action依赖于service,那么问题来了。我们如何才能去标注这个类是action呢?怎么才能让声明的service类去动态获取对象呢?

@Controller:能够去标注 这是控制层的类。在IOC容器被创建的时候,IOC会去扫描被这个注释标注的类并且创建该类。

 @Controller                    //Spring对action层的注释

@Resource(IOC注入) : 被标注的属性会根据属性名(类名小写的属性名)来从IOC容器中找到对于的类,使用反射来new出对象并注入到这个属性里面

     @Resource    //IOC注入
     private CashierService cashierService = null;

@SuppressWarnings("all")      //忽略警告
@Controller                    //Spring对action层的注释
@Scope(value="prototype")     //标注该类是多例模式Spring默认单例,而Action是一个线程请求一个对象。
public class CashierAction {
    //Action依赖Service
    @Resource    //IOC注入
    private CashierService cashierService = null;

(2) service和action同样 如法炮制

@Service    //Spring对service层的注释

1 @Service    //Spring对service层的注释
2 public class CashierService {
3     //servoce依赖调用dao层
4     @Resource    //IOC容器注入
5     private CashierDao cashierDao = null;

(3)dao层是访问数据库层,没有依赖的层但是却会依赖entity实体类

  @Resource:对dao层的注释。

  @Resource:IOC注入

    但是这里注入的并不是MVC中的类,是一个entity实体类,这个实体类并不是用注解配置的,而是使用applicationContext.xml配置的!并且还是使用配置文件配置,用注解的方式注入。

 

1 @Repository    //Spring对dao层的注释
2 public class CashierDao {
3     @Resource
4     private Dbinfo dbinfo = null;

 

applicationContext.xml配置实体类:

1  <bean id="dbinfo" class="com.wzh.common.Dbinfo">
2         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
3         <property name="url" value="123"></property>
4         <property name="username" value="root"></property>
5         <property name="password" value="123"></property>
6     </bean>

在这里可以看出,注解和配置文件并不冲突,是可以配合使用的。

  注解开发,比配置文件开发简单很多,但是有得就有失。它失去的就是:注解开发时在java类当中进行的,它不能像配置文件一样直接改配置文件来动态修改Java代码,但是尽管没有使用配置文件方式可维护性那样高,但其实修改Java代码 也只是修改变量名而已

 

Spring框架学习(三)Spring的注解开发

标签:

原文地址:http://www.cnblogs.com/buibui/p/5803663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!