`

Spring学习之从XML到注解(一.转变过程)

阅读更多

 一.xml配置文件形式:

1.类的实现:

    (1).UserDao:

public class UserDao{
    ....
}

   (2).UserService:

public class UserServiceImpl implements UserService {  
    private UserDao userDao;  
    public void setUserDao(UserDao userDao) {  //此处有set方法——set注入
        this.userDao = userDao;  
    }  
    ...  
}  

   (3).Test测试类:

public class Test{
     ApplicationContext ctx = new ClassPathXmlApplicationContext(
                new String[] { "classpath:/applicationContext.xml" });
     UserService userService = ctx.getBean("userService");
     userService.save("123");
}

2.xml配置文件:

<bean id="userServiceImpl" class="com.kedacom.service.UserServiceImpl">
    <property name="userDao" ref="userDao" />  //注意改行的改变
</bean>  
<bean id="userDao" class="com.kedacom.persistence.UserDaoImpl"/>

 二.注解的形式:

(一).一级转变:属性的注解——@Autowired/@Resource

1.类的实现:  

   (1).UserDao:

public class UserDao{
    ....
}
   (2).UserService:

   1.对成员变量进行标注:

    public class UserServiceImpl implements UserService {  
        @Autowired  
        private UserDao userDao;  //属性用了注解,不再需要set方法
        ...  
    }  

    2. 对方法进行标注:

    public class UserServiceImpl implements UserService {  
        private UserDao userDao;  
        @Autowired  
        public void setUserDao(UserDao userDao) {  
            this.userDao = userDao;  
        }  
        ...  
    }  

   (3).Test测试类:

public class Test{
     ApplicationContext ctx = new ClassPathXmlApplicationContext(
                new String[] { "classpath:/applicationContext.xml" });
     UserService userService = ctx.getBean("userService");
     userService.save("123");
}

2.xml配置文件:

<bean id="userServiceImpl" class="com.kedacom.spring.annotation.service.UserServiceImpl"/>
<!--注意此处少了属性userDao的配置,用@Autowired注解通过java反射获得-->

<bean id="userDao" class="com.kedacom.spring.annotation.persistence.UserDaoImpl"/>  
<!--注意用了@Autowired后,UserDao类的Bean还是必须要配置,非常重要!-->

<context:annocation-config/>
//<!--使用属性注解必须在xml配置文件中添加这句话,用于开启注解装配方式-->

(二).二级转变:类的注解——@Controller/@Service/@Repository/@Component

 1.类的实现:  

   (1).UserDao:

@Repository
public class UserDao{
    ....
}
   (2).UserService:
@Service    
public class UserManagerImpl implements UserManager {  
    @Autowired  
    private UserDao userDao;  //属性用了注解,不再需要set方法
    ...  
} 
//注意:在3.2.6版本中,使用@Autowired给属性注入后,若该类上面没有类的注解(@Service/@Repository等),
//@Autowired下面会出现红线,即编译报错。(原因还未知!)

   (3).Test测试类:

public class Test{
     ApplicationContext ctx = new ClassPathXmlApplicationContext(
                new String[] { "classpath:/applicationContext.xml" });
     UserService userService = ctx.getBean("userService");
     userService.save("123");
}

2.xml配置文件

 

<!--注意此处对于之前的Bean的配置都已经没有了,直接用@Service和@Repository进行注入了-->

<context:component-scan base-package="com.huaxia.service"/>
<!--在使用类的注解之后,必须在spring的xml配置文件中添加上面这行,它用于自动检测和扫描
指定的包中哪些类使用了类的注解,然后将其实例化后放在Spring容器中-->

 

 

.Scema的说明:

 

<!--涉及到注解的部分是:-->
xmlns:context="http://www.springframework.org/schema/context"

<!--之所以会用到这个因为在使用注解功能时有一个自动扫描beans和注解功能注册的配置。
如下:-->
<context:component-scan base-package="com.huaxia.service"/>

 

 

相关链接:

Spring注解详解

 

分享到:
评论

相关推荐

    spring aop注解方式、xml方式示例

    下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...

    Spring全注解project示例 (无web.xml配置)

    总结,Spring全注解项目示例展示了如何在不使用web.xml的情况下,利用Java注解进行Spring应用的配置,这是现代Spring开发的最佳实践之一。通过深入学习和实践,开发者可以提升对Spring框架的理解,提高开发效率。

    Spring框架xml注解配置方式实例

    例如,可能会有一个`@Component`注解的类表示一个Spring Bean,或者一个`@Service`、`@Repository`或`@Controller`注解的类,分别对应服务层、数据访问层和控制器层。另外,类中可能还有`@Autowired`注解来自动装配...

    spring3.x注解

    Spring 3.x 框架引入了依赖注入的注解,改变了传统的 XML 配置方式,提供了一种更加灵活和方便的依赖配置方式。下面对 Spring 3.x 的注解应用进行详细的介绍。 一、属性装配 在 Spring 3.x 中,提供了两种用于...

    spring事务,xml方式和注解方式

    Spring事务管理是Spring框架的核心特性之一,主要用于处理应用程序中的数据一致性问题。在多线程、分布式系统中,事务管理显得尤为重要。本节将详细介绍Spring如何通过XML配置和注解方式来实现事务管理。 首先,...

    Spring中Aop的使用包括xml和注解

    在Spring框架中,AOP(面向...而注解配置则简化了配置过程,使得AOP更容易融入到Spring的组件中。选择哪种方式取决于项目需求和个人偏好。在实际开发中,通常会结合使用这两种方法,以便充分利用Spring框架的强大功能。

    Spring系列之Spring常用注解总结.docx

    1. `@Component`:这是Spring中的基础组件注解,用于标记一个普通的Java类作为Spring管理的Bean。例如,可以将`Zoo`类标记为`@Component`,然后Spring会自动发现并管理它。 ```java @Component public class Zoo { ...

    spring2.5基于注解例子程序

    Spring 2.5是Spring框架的一个重要版本,它引入了大量增强的功能,特别是对注解的支持,这使得在Java应用程序中实现依赖注入和面向切面编程(AOP)变得更加简单和直观。在这个基于注解的例子程序中,我们将深入探讨...

    spring2.5.6注解以及xml简单ioc入门示例

    总之,这个入门示例是学习Spring框架的很好起点,尤其是对于那些想了解Spring 2.5.6版本中注解和XML配置的初学者。通过实践这两个示例,你可以更好地理解IoC的概念,以及如何在实际项目中运用。同时,别忘了查阅`...

    动态代理和注解Spring.rar

    在Java编程领域,Spring框架是应用最广泛的轻量级开源框架之一,它为开发者提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)以及声明式事务管理等。本资料“动态代理和注解Spring.rar”着重介绍了Spring...

    Spring demo 自动检测注解

    在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...

    Spring mvc 3 注解精华.docx

    首先,Spring的官方例子Spring-PetClinic是一个很好的学习资源,它演示了如何在处理简单表单数据时使用注解。这个示例可以在Spring发行版的“samples/petclinic”目录下找到。另一个示例是imagedb,它是一个基于注解...

    spring无web.xml零配置

    在现代的Spring框架开发中,"spring无web.xml零配置"是一种常见的实践,它通过Java配置(javaconfig)替代了传统的XML配置方式。这种方式使得应用更加灵活,代码更易于理解和维护。下面我们将深入探讨这个主题。 ...

    Spring的DI注解配置.zip

    `@Component`家族、`@Autowired`、`@Qualifier`、`@Value`、`@Configuration`和`@Bean`等注解协同工作,使得Spring应用的配置过程更加灵活。理解并熟练掌握这些注解,能帮助开发者编写出更高质量、更易于维护的...

    spring 定时器 注解+xml 方式模板

    Spring Schedule模块提供了强大的定时任务支持,既可以通过注解的方式,也可以通过XML配置来实现。本文将深入探讨如何使用`@Scheduled`注解和XML配置来创建和管理定时任务。 首先,我们要引入Spring Schedule的依赖...

    Spring注解.pdf

    在Spring框架的学习过程中,理解注解是不可或缺的一部分。一般而言,Spring注解的学习可以分为以下几个关键部分: 1. 控制层(Controller)注解:控制层是Web应用中负责接收用户请求并返回响应的部分。在Spring中,...

    spring3.0mvc自学教程ppt+注解教程+注解实例+springmybatis教程+项目实例+中文api (老师的心血)从入门到项目实战

    总的来说,这个自学教程包含了Spring 3.0 MVC的所有关键要素,从基本概念到高级特性,再到实际项目应用,覆盖了全面的学习路径。通过系统学习并实践这些内容,你将能够熟练掌握Spring MVC,并具备开发基于Spring的...

    SSH三大框架整合mini案例 struts 2(xml配置)+hibernate(注解)+spring(xml配置)

    在这个mini案例中,我们将深入理解SSH框架如何协同工作,以实现一个基于XML配置的Struts 2、注解驱动的Hibernate以及XML配置的Spring的整合。 **Struts 2框架** 是一个MVC(Model-View-Controller)架构,主要负责...

    Test05_Spring_Context_XML.rar

    此外,Spring还支持基于注解的配置,这允许我们在类或方法上直接使用注解,而不是在XML文件中配置。 当我们谈到“Spring工程的初始化模块与基础配置”时,我们通常指的是设置Spring IoC(Inversion of Control)...

Global site tag (gtag.js) - Google Analytics