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

7天学会自媒体短视频制作济南搜索引擎优化网站

7天学会自媒体短视频制作,济南搜索引擎优化网站,网站搭建代理,.net 导航网站模板文章目录 #x1f334;什么是依赖注入#x1f340;依赖注入的三种方法#x1f338;属性注入(Field Injection)#x1f338;构造方法注入#x1f338;Setter注入#x1f338;三种注入优缺点分析 #x1f333;Autowired存在的问题#x1f332;解决Autowired对应多个对象问… 文章目录 什么是依赖注入依赖注入的三种方法属性注入(Field Injection)构造方法注入Setter注入三种注入优缺点分析 Autowired存在的问题解决Autowired对应多个对象问题Autowird与Resource的区别⭕总结 什么是依赖注入 依赖注⼊是⼀个过程是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源⽽资源指的就是对象. 简单来说, 就是把对象取出来放到某个类的属性中 在⼀些⽂章中, 依赖注⼊也被称之为 “对象注⼊”, “属性装配”, 具体含义需要结合⽂章的上下⽂来理解 依赖注入的三种方法 关于依赖注⼊, Spring也给我们提供了三种⽅式: 属性注⼊(Field Injection)构造⽅法注⼊(Constructor Injection)Setter 注⼊(Setter Injection) 属性注入(Field Injection) 属性注⼊是使⽤ Autowired 实现的。 比如我们将StudentService类注⼊到StudentController类中. StudentService.java代码如下 Service public class StudentService {public void run() {System.out.println(StudentService启动);} } StudentController.java代码如下 RestController public class StudentController {Autowiredprivate StudentService studentService;public void run() {System.out.println(StudentController启动);studentService.run();} } 获取StudentController中的run方法 SpringBootApplication public class SpringMvcApplication {public static void main(String[] args) {//获取spring上下文ApplicationContext context SpringApplication.run(SpringMvcApplication.class, args);//从spring中获取对象StudentController studentController context.getBean(studentController,StudentController.class);//使用spring对象studentController.run();}} 构造方法注入 构造⽅法注⼊是在类的构造⽅法中实现注⼊如下代码所示 RestController public class StudentController {private StudentService studentService;public StudentController() {}Autowiredpublic StudentController(StudentService studentService) {this.studentService studentService;}public void run() {System.out.println(StudentController启动);studentService.run();}} 注意事项 如果类只有⼀个构造⽅法那么Autowired注解可以省略如果类中有多个构造⽅法那么需要添加上Autowired来明确指定到底使⽤哪个构造⽅法 Setter注入 Setter注入和属性的Setter⽅法实现类似只不过在设置set⽅法的时候需要加上Autowired注解 RestController public class StudentController {private StudentService studentService;Autowiredpublic void setStudentService(StudentService studentService) {this.studentService studentService;}public void run() {System.out.println(StudentController启动);studentService.run();}} 三种注入优缺点分析 属性注⼊ 优点: 简洁使⽤⽅便缺点: – 只能⽤于 IoC 容器如果是⾮ IoC 容器不可⽤并且只有在使⽤的时候才会出现 NPE空指 针异常 – 不能注⼊⼀个Final修饰的属性 构造函数注入 优点: – 可以注⼊final修饰的属性 – 注⼊的对象不会被修改 – 依赖对象在使⽤前⼀定会被完全初始化因为依赖是在类的构造⽅法中执⾏的⽽构造⽅法 是在类加载阶段就会执⾏的⽅法. – 通⽤性好, 构造⽅法是JDK⽀持的, 所以更换任何框架,他都是适⽤的 缺点: – 注⼊多个对象时, 代码会⽐较繁琐 Setter注入 优点: ⽅便在类实例之后, 重新对该对象进⾏配置或者注⼊缺点: – 不能注⼊⼀个Final修饰的属性 – 注⼊对象可能会被改变, 因为setter⽅法可能会被多次调⽤, 就有被修改的⻛险 Autowired存在的问题 当同⼀类型存在多个bean时,在使⽤Autowired就会存在问题 比如我们有以下bean。 BeanFiguation.java代码如下 Configuration public class BeanFiguation {Beanpublic Student student1() {Student student new Student();student.setId(11);student.setName(山高路远);student.setAge(11);return student;}Beanpublic Student student2() {Student student new Student();student.setId(22);student.setName(与君共勉);student.setAge(22);return student;} } StudentController.java代码如下 RestController public class StudentController {Autowiredprivate Student student;public void run() {System.out.println(student);} } 当我们进行启动时 报错的原因是⾮唯⼀的 Bean 对象 解决Autowired对应多个对象问题 为了解决上述问题Spring提供了以下4种解决⽅案 bean对象名称与属性名相匹配PrimaryQualifierResource 第一种bean对象名称与属性名相匹配 第二种使⽤Primary注解当存在多个相同类型的Bean注⼊时加上Primary注解来确定默认的实现. Component public class BeanConfig {Primary //指定该bean为默认bean的实现Bean(u1)public User user1(){User user new User();user.setName(zhangsan);user.setAge(18);return user;}Beanpublic User user2() {User user new User();user.setName(lisi);user.setAge(19);return user;} }第三种使⽤Qualifier注解指定当前要注⼊的bean对象。在Qualifier的value属性中指定注⼊的bean的名称。 Qualifier注解不能单独使⽤必须配合Autowired使⽤ Controller public class UserController {Qualifier(user2) //指定bean名称Autowiredprivate User user;public void sayHi(){System.out.println(hi,UserController...);System.out.println(user);} }第四种使⽤Resource注解是按照bean的名称进⾏注⼊。通过name属性指定要注⼊的bean的名称。 Controller public class UserController {Resource(name user2)private User user;public void sayHi(){System.out.println(hi,UserController...);System.out.println(user);} }Autowird与Resource的区别 Autowired 是spring框架提供的注解⽽Resource是JDK提供的注解Autowired 默认是按照类型注⼊⽽Resource是按照名称注⼊. 相⽐于 Autowired 来说Resource ⽀持更多的参数设置例如 name 设置根据名称获取 Bean。 ⭕总结 感谢大家的阅读希望得到大家的批评指正和大家一起进步与君共勉
http://www.pierceye.com/news/440613/

相关文章:

  • 网站开发转行进入衍生领域wordpress qaengine
  • 公司内部网站模板快速建网站的软件
  • 被骗去国外做网站网站推广网站的运营推广方案
  • 北京汽车业务网站开发公司桂林旅游攻略必去景点
  • 个人网站开发是学什么语言wordpress打造cms
  • 网站建设与维护的重要性岳阳建设厅网站
  • 惠州网站开发公司wordpress简单
  • 外贸网站 免费模板 使用 zencart如何购买域名和备案
  • 网站建设联系我们设计网站无锡
  • 深圳做网站好的公司wordpress建菜单
  • 网站编辑需要的技能做网站需要什么域名
  • 营销型网站建设目的和意义网站托管方案
  • 网站感谢页面企业标志图片大全
  • 响应式网站建设必推全网天下邵阳竞价网站建设设计
  • 大连网站如何制作辽阳公司做网站
  • 百度站长怎么验证网站jekyll做公司网站
  • 电子商务公司建设网站方案设计网站建设开发背景
  • 同一产品做多个网站山西省住房和城乡建设厅官网
  • 网站建设的流程是什么意思微信小程序的代码
  • 广州网站整站优化html项目案例实战
  • 宁波网站推广方式seo优化按天扣费
  • 紫金优化网站制作python编程100例
  • 原阳网站建设哪家好域名网址
  • 西安学校网站建设wordpress手机端模板下载
  • 泉州网站建设工作室网站上的产品板块
  • 平顶山网站网站建设网页设计与制作教程 刘瑞信 pdf
  • 网站开发深天津设计公司排行榜
  • 做tcf法语听力题的网站公司网页简介
  • 十堰做网站最专业的公司深圳企业网查询
  • 购物网站大全排名调查drupal与wordpress哪个容易