Spring的@Autowired问题

Spring2之后,出现很多注解,这些注解让Spring的配置变得混乱起来,因此 ,别人力排Spring的注解。

注解引发的问题:

1、缺乏明确的配置导致程序的依赖注入关系不明确。

2、不利于模块化的装配。

3、给维护带来麻烦,因为你要根据源代码找到依赖关系。

4、通用性不好。如果你哪天抛开了Spring,换了别的Ioc容器,那么你的注解 要一个个的删除。

但是很多傻X级的程序员还偶尔给你用点,或半用半不用,当你问及的时候, 还一本正经的说某某某书上就是这么用的!!!如果你接手他的代码,会很郁闷 。

这里写个例子,为的是看懂带注解的代码,不是推崇注解有多高级,真没必要 。

package lavasoft.springstu.anno;
/**
* 一个普通的Bean
*
* @author leizhimin 2009-12-23 10:40:38
*/
public class Foo {
         private String name;
         public Foo(String name) {
                 this.name = name;
         }
         public String getName() {
                 return name;
         }
         public void setName(String name) {
                 this.name = name;
         }
}

package lavasoft.springstu.anno;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Spring自动装配的注解
*
* @author leizhimin 2009-12-23 10:41:55
*/
public class Bar {
         @Autowired(required = true)
         private Foo foo;
         public void f1() {
                 System.out.println(foo.getName ());
         }
}

时间: 2024-10-22 22:26:45

Spring的@Autowired问题的相关文章

【浅谈JavaEE框架】Spring中@Autowired标签与@Resource标签的区别

@Autowired  Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作.  通过 @Autowired的使用来消除 set ,get方法.   要实现我们要精简程序的目的. @Autowired默认按照类型进行注入 @Autowired @Qualifier("personDaoxxx")这样就是按照名称进行装配 @Autowired(required=true)必须注入值,不能为null,为false无论注入什

spring mvc @Autowired 注入失败

问题描述 spring mvc @Autowired 注入失败 2C 配置如下: application-context.xml <?xml version=""1.0"" encoding=""UTF-8""?> xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:aop=""htt

使用Spring的@Autowired 实现DAO, Service, Controller三层的注入(转)

  简述: 结合Spring和Hibernate进行开发 使用@Autowired实现依赖注入, 实现一个学生注册的功能,做一个技术原型 从DAO(Repository) -> Service -> Controller   目录结构: 使用Maven做本地包管理, pom.xml   [java] view plaincopy <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt

Spring中 @Autowired标签与 @Resource标签 的区别

Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource. @PostConstruct及@PreDestroy. 1. @Autowired    @Autowired是Spring 提供的,需导入    Package:org.springframework.beans.factory.annotation.Autowired;    只按照byType 注入.2. @Resource    @Resource默认按 byNam

反对抄袭 正解spring的@Autowired 不要相信网上的错误版本

首先,最重要的, @Autowired的就是用来来消除 set ,get方法. 有些介绍,如著名的马士兵,说要在set方法上进行注入.我当时就看不明白了,既然只取消了一个GET,这个@Autowired还有什么屁用.不是瞎折腾么.还要用@Qualifier来帮忙指定BEAN. 如下: // @Autowired // public void setUserDAO(@Qualifier("userDAOImpl") UserDAO userDAO) { // this.userDAO =

Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用

Spring @Autowired,@Resource,@Required注解的用法和作用 Spring中 @Autowired标签与 @Resource标签 的区别 Spring注解@Component.@Repository.@Service.@Controller区别

最小化Spring XML配置

spring提供了几种技巧,可以帮助我们减少XML的配置数量: 1.自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系. 2.自动检测(autodiscovery)比自动装配更进了一步,让Spring能够自动识别哪些类需要被配置成Spring Bean,从而减少对<bean>元素的使用.   1.1.自动装配Bean属性 1.1.1.4种类型的自动装配

Spring知识点提炼

1. Spring框架的作用 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的编程AOP:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开. 容器:Spring包含并管理应用中对象的生命周期和配置 MVC框架: Spring-MVC 事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务JTA 异常处理:Spring提供方便的API

《Spring实战(第4版)》——2.2 自动化装配bean

2.2 自动化装配bean 在本章稍后的内容中,你会看到如何借助Java和XML来进行Spring装配.尽管你会发现这些显式装配技术非常有用,但是在便利性方面,最强大的还是Spring的自动化配置.如果Spring能够进行自动化装配的话,那何苦还要显式地将这些bean装配在一起呢? Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean.自动装配(autowiring):Spring自动满足bean之间的依赖