一.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 AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...
总结,Spring全注解项目示例展示了如何在不使用web.xml的情况下,利用Java注解进行Spring应用的配置,这是现代Spring开发的最佳实践之一。通过深入学习和实践,开发者可以提升对Spring框架的理解,提高开发效率。
例如,可能会有一个`@Component`注解的类表示一个Spring Bean,或者一个`@Service`、`@Repository`或`@Controller`注解的类,分别对应服务层、数据访问层和控制器层。另外,类中可能还有`@Autowired`注解来自动装配...
Spring 3.x 框架引入了依赖注入的注解,改变了传统的 XML 配置方式,提供了一种更加灵活和方便的依赖配置方式。下面对 Spring 3.x 的注解应用进行详细的介绍。 一、属性装配 在 Spring 3.x 中,提供了两种用于...
Spring事务管理是Spring框架的核心特性之一,主要用于处理应用程序中的数据一致性问题。在多线程、分布式系统中,事务管理显得尤为重要。本节将详细介绍Spring如何通过XML配置和注解方式来实现事务管理。 首先,...
在Spring框架中,AOP(面向...而注解配置则简化了配置过程,使得AOP更容易融入到Spring的组件中。选择哪种方式取决于项目需求和个人偏好。在实际开发中,通常会结合使用这两种方法,以便充分利用Spring框架的强大功能。
1. `@Component`:这是Spring中的基础组件注解,用于标记一个普通的Java类作为Spring管理的Bean。例如,可以将`Zoo`类标记为`@Component`,然后Spring会自动发现并管理它。 ```java @Component public class Zoo { ...
Spring 2.5是Spring框架的一个重要版本,它引入了大量增强的功能,特别是对注解的支持,这使得在Java应用程序中实现依赖注入和面向切面编程(AOP)变得更加简单和直观。在这个基于注解的例子程序中,我们将深入探讨...
总之,这个入门示例是学习Spring框架的很好起点,尤其是对于那些想了解Spring 2.5.6版本中注解和XML配置的初学者。通过实践这两个示例,你可以更好地理解IoC的概念,以及如何在实际项目中运用。同时,别忘了查阅`...
在Java编程领域,Spring框架是应用最广泛的轻量级开源框架之一,它为开发者提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)以及声明式事务管理等。本资料“动态代理和注解Spring.rar”着重介绍了Spring...
在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...
首先,Spring的官方例子Spring-PetClinic是一个很好的学习资源,它演示了如何在处理简单表单数据时使用注解。这个示例可以在Spring发行版的“samples/petclinic”目录下找到。另一个示例是imagedb,它是一个基于注解...
在现代的Spring框架开发中,"spring无web.xml零配置"是一种常见的实践,它通过Java配置(javaconfig)替代了传统的XML配置方式。这种方式使得应用更加灵活,代码更易于理解和维护。下面我们将深入探讨这个主题。 ...
`@Component`家族、`@Autowired`、`@Qualifier`、`@Value`、`@Configuration`和`@Bean`等注解协同工作,使得Spring应用的配置过程更加灵活。理解并熟练掌握这些注解,能帮助开发者编写出更高质量、更易于维护的...
Spring Schedule模块提供了强大的定时任务支持,既可以通过注解的方式,也可以通过XML配置来实现。本文将深入探讨如何使用`@Scheduled`注解和XML配置来创建和管理定时任务。 首先,我们要引入Spring Schedule的依赖...
在Spring框架的学习过程中,理解注解是不可或缺的一部分。一般而言,Spring注解的学习可以分为以下几个关键部分: 1. 控制层(Controller)注解:控制层是Web应用中负责接收用户请求并返回响应的部分。在Spring中,...
总的来说,这个自学教程包含了Spring 3.0 MVC的所有关键要素,从基本概念到高级特性,再到实际项目应用,覆盖了全面的学习路径。通过系统学习并实践这些内容,你将能够熟练掌握Spring MVC,并具备开发基于Spring的...
在这个mini案例中,我们将深入理解SSH框架如何协同工作,以实现一个基于XML配置的Struts 2、注解驱动的Hibernate以及XML配置的Spring的整合。 **Struts 2框架** 是一个MVC(Model-View-Controller)架构,主要负责...
此外,Spring还支持基于注解的配置,这允许我们在类或方法上直接使用注解,而不是在XML文件中配置。 当我们谈到“Spring工程的初始化模块与基础配置”时,我们通常指的是设置Spring IoC(Inversion of Control)...