您现在的位置是:主页 > news > 做网站都用到哪些软件/百度网盘电脑网页版

做网站都用到哪些软件/百度网盘电脑网页版

admin2025/5/7 2:31:41news

简介做网站都用到哪些软件,百度网盘电脑网页版,国外做问卷赚购物券等的网站,广州灰色优化网络公司<context:component-scan>元素会自动注册AutowiredAnnotationBeanPostProcessor实例&#xff0c;该实例可以自动装配具有Autowired、Resource、Inject注解的属性。 一、Autowired 1、Autowired是根据类型进行自动装配的&#xff0c;如果需要按名称进行装配&#xff0c;…

做网站都用到哪些软件,百度网盘电脑网页版,国外做问卷赚购物券等的网站,广州灰色优化网络公司<context:component-scan>元素会自动注册AutowiredAnnotationBeanPostProcessor实例&#xff0c;该实例可以自动装配具有Autowired、Resource、Inject注解的属性。 一、Autowired 1、Autowired是根据类型进行自动装配的&#xff0c;如果需要按名称进行装配&#xff0c;…

<context:component-scan>元素会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有@Autowired、@Resource、@Inject注解的属性。

一、@Autowired

1、@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier;(@Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。不过需要注意的是@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参

@Service
public class UserService {private UserRepository userRepository;@Autowired@Qualifier("userRepositoryImpl")public void setUserRepository(UserRepository userRepository){this.userRepository = userRepository;}public void add(){System.out.println("UserService add...");userRepository.save();}
}
或者
@Service
public class UserService {private UserRepository userRepository;@Autowiredpublic void setUserRepository(@Qualifier("userRepositoryImpl") UserRepository userRepository){this.userRepository = userRepository;}public void add(){System.out.println("UserService add...");userRepository.save();}
}

2、@Autowired有个属性为required,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错

@Controller
public class UserController {@Autowired(required=false)private UserService userService;public void execute(){System.out.println("UserController execute...");userService.add();}
}

3、@Autowired可以作用在变量、setter方法、构造函数上。如将@autowored写在被注入的成员变量上,就不用再xml文件中配置了,在程序中去掉相应的setter和getter方法

@Controller
public class UserController {@Autowiredprivate UserService userService;public void execute(){System.out.println("UserController execute...");userService.add();}
}

二、@Inject

1、@Inject是JSR330 (Dependency Injection for Java)中的规范,需要导入javax.inject.Inject;实现注入。

2、@Inject是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Named;

3、@Inject可以作用在变量、setter方法、构造函数上。

a、将@Inject可以作用在变量、setter方法、构造函数上,和@Autowired一样

b、@Named("XXX") 中的 XX是 Bean 的名称,所以 @Inject和 @Named结合使用时,自动注入的策略就从 byType 转变成 byName 了。

 

三、@Resource

1、@Resource是JSR250规范的实现,需要导入javax.annotation实现注入。

2、@Resource是根据名称进行自动装配的,一般会指定一个name属性

3、@Resource可以作用在变量、setter方法上。

 

总结:

1、@Autowired是spring自带的,@Inject是JSR330规范实现的,@Resource是JSR250规范实现的,需要导入不同的包

2、@Autowired、@Inject用法基本一样,不同的是@Autowired有一个request属性

3、@Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的

4、@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Name一起使用

5、建议使用@Autowired