当前位置: 首页 > wzjs >正文

网站内容建设需要注意哪些问题长沙关键词优化服务

网站内容建设需要注意哪些问题,长沙关键词优化服务,网站建设导航分哪几类,企业网络方案设计欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 依赖注⼊是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象. 在上⾯程序案例中,我们使⽤了 Autowired 这…

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗

如有错误,欢迎指出~


依赖注⼊是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象. 在上⾯程序案例中,我们使⽤了 @Autowired 这个注解,完成了依赖注⼊的操作. 简单来说,就是把对象取出来放到某个类的属性中.

注入方式

关于依赖注⼊,Spring也给我们提供了三种⽅式:

1. 属性注⼊(FieldInjection)

2. 构造⽅法注⼊(ConstructorInjection)

3. Setter注⼊(SetterInjection)

属性注⼊

属性注⼊是使⽤@Autowired 实现的,将Service类注⼊到Controller类中. Service类的实现代码如下:

@Servicepublic class UserService {public void sayHi(){System.out.println("hi,UserService..." );}}
@Controller // 将对象存储到 Spring 中
public class UserController {@Autowiredprivate UserService service;public void sayHi(){System.out.println("hi,UserController...");service.sayHi();}
}

 构造⽅法注⼊

构造⽅法注⼊是在类的构造⽅法中实现注⼊,如下代码所⽰:

@Controller // 将对象存储到 Spring 中
public class UserController {private UserService service;@Autowiredpublic UserController(UserService userService){this.service = userService;}public void sayHi(){System.out.println("hi,UserController...");service.sayHi();}
}

注意事项:如果类只有⼀个构造⽅法,那么@Autowired注解可以省略;如果类中有多个构造⽅法, 那么需要添加上@Autowired来明确指定到底使⽤哪个构造⽅法。

Setter注⼊

Setter注⼊和属性的Setter⽅法实现类似,只不过在设置set⽅法的时候需要加上@Autowired注 解,如下代码所⽰:

@Controller // 将对象存储到 Spring 中
public class UserController {private UserService service;@Autowiredpublic void setService(UserService userService){this.service = userService;}public void sayHi(){System.out.println("hi,UserController...");service.sayHi();}
}

三种注⼊优缺点分析

  • 属性注⼊ ◦
    • 优点: 简洁,使⽤⽅便
    • 缺点:
      • 只能⽤于IoC容器,如果是⾮IoC容器不可⽤,并且只有在使⽤的时候才会出现NPE(空指 针异常)
      • 不能注⼊⼀个Final修饰的属性
  • 构造函数注⼊(Spring4.X推荐)
    • 优点:
      • 可以注⼊final修饰的属性
      • 注⼊的对象不会被修改
      • 依赖对象在使⽤前⼀定会被完全初始化,因为依赖是在类的构造⽅法中执⾏的,⽽构造⽅法 是在类加载阶段就会执⾏的⽅法.
      • 通⽤性好,构造⽅法是JDK⽀持的,所以更换任何框架,他都是适⽤的
    • 缺点: 注⼊多个对象时,代码会⽐较繁琐
  • Setter注⼊(Spring3.X推荐)
    • 优点:⽅便在类实例之后,重新对该对象进⾏配置或者注⼊
    • 缺点:
      • 不能注⼊⼀个Final修饰的属性
      • 注⼊对象可能会被改变,因为setter⽅法可能会被多次调⽤,就有被修改的⻛险.

@Autowired存在问题

当同⼀类型存在多个bean时,使⽤@Autowired会存在问题

@Component//@Bean要配合类注解使用
public class BeanConfig {@Beanpublic User user1(){User user = new User();user.setName("zhangsan");user.setAge(18);user.setGender("男");return user;}@Beanpublic User user2(){User user = new User();user.setName("lisi");user.setAge(81);user.setGender("女");return user;}
}
@Controller // 将对象存储到 Spring 中
public class UserController {//注⼊user@Autowiredprivate User user;public void sayHi(){System.out.println("hi,UserController...");System.out.println(user);}
}

报错的原因是,⾮唯⼀的Bean对象。

解决方案

Spring提供了以下⼏种解决⽅案:

  1. @Primary :当存在多个相同类型的Bean注⼊时,加上@Primary注解,来确定默认的实现.
  2. @Qualifier : 指定当前要注⼊的bean对象。在@Qualifier的value属性中,指定注⼊的bean 的名称。@Qualifier注解不能单独使⽤,必须配合@Autowired使⽤
  3. @Resource: 按照bean的名称进⾏注⼊。通过name属性指定要注⼊的bean的名称

代码示例 

@Primary

@Component
public class BeanConfig {@Primary@Beanpublic User user1(){...}@Beanpublic User user2(){...}
}

 @Qualifier

@Controller
public class UserController {//注⼊user@Autowired@Qualifier("user2")private User user;public void sayHi(){System.out.println("hi,UserController...");System.out.println(user);}
}

@Resource

@Controller 
public class UserController {//注⼊user@Resource(name = "user2")private User user;public void sayHi(){System.out.println("hi,UserController...");System.out.println(user);}
}

常⻅⾯试题:@Autowird与@Resource的区别

  1. @Autowired是spring框架提供的注解,⽽@Resource是JDK提供的注解
  2. @Autowired默认是按照类型注⼊,⽽@Resource是按照名称注⼊.相⽐于@Autowired来说, @Resource⽀持更多的参数设置,例如name设置,根据名称获取Bean.

http://www.dtcms.com/wzjs/273537.html

相关文章:

  • 郑州做网站公司汉狮价格软文推广发稿
  • wordpress顶部图像取消不seo营销排名
  • 爱网站搭建网站注册页面
  • 企业建设网站意义四年级摘抄一小段新闻
  • 公司网站怎样做维护免费海报模板网站
  • 中小型网站设计公司外链交易平台
  • 湖南营销型网站建设 皆来磐石网络优化公司
  • 怎么做网站代理企业网络组建方案
  • 西宁圆井模板我自己做的网站深圳网站建设维护
  • 商场网站建设公司如何进行市场推广
  • 改动网站标题网上培训课程平台
  • 哈尔滨快速建站案例枸橼酸西地那非片的功效与作用
  • 加盟网站建设公司seo快速优化文章排名
  • 网站域名301是什么意思互联网营销是做什么的
  • 重庆建设执业资格注册中心网站竞价托管哪家效果好
  • html网站开发广州网站排名优化报价
  • 网站域名实名认证通知关键词seo服务
  • 龙岩制作b2b网站百度网盘资源搜索引擎搜索
  • 网站怎么做定位功能排行榜
  • 现在哪个网站做电商好西安百度推广联系方式
  • 济南集团网站建设费用百度收录链接提交入口
  • dede模板网站教程双滦区seo整站排名
  • seo和网站建设那个先学网游推广
  • 建设网站的工具是什么内蒙古网站seo
  • 做网站体会橘子seo历史查询
  • 门户网站部署方案网址域名查询ip地址
  • 京icp备案查询官网上海百度seo点击软件
  • 悦然wordpress建站服务深圳优化公司样高粱seo
  • 织梦做的网站怎样想做一个网站
  • 帮人家做网站怎么赚钱百度seo关键词优化工具