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

网站定制开发最简单的网站开发

网站定制开发,最简单的网站开发,郑州好的网站建设公司哪家好,菏泽哪里有做网站的文章目录 前言一、Configuration二、Import导入组件三、Conditional条件装配四、ImportResource导入Spring配置文件五、ConfigurationProperties配置绑定总结 前言 本文主要讲诉Configuration、Import、Conditional、ImportResource、ConfigurationProperties注解。 先将实体… 文章目录 前言一、Configuration二、Import导入组件三、Conditional条件装配四、ImportResource导入Spring配置文件五、ConfigurationProperties配置绑定总结 前言 本文主要讲诉Configuration、Import、Conditional、ImportResource、ConfigurationProperties注解。 先将实体类给大家方便下面测试 get、set、构造器大家自己添加这里我用的是ToString等注解以后会出文章讲诉所以没写这些就不列出来了。 public class Pet {private String name;}public class User {private String name;private Integer age;private Pet pet; }public class Car {private String brand;private String price; }一、Configuration 1、配置类里面使用Bean标注在方法上给容器注册组件默认也是单实例的所谓单实例跟我们在Spring中了解的bean创建对象的单实例是一样的就是在调用getBean方法创建相同类型实例对象时这些对象的地址相同即无论创建多少对象都是同一个对象。多实例就是每次创建对象都重新创建一个不同地址的新对象。 2、配置类本身也是组件。 3、proxyBeanMethods代理bean的方法。 Full模式(proxyBeanMethods true)保证每个Bean方法被调用多少次返回的组件都是单实例的默认 Lite模式(proxyBeanMethods false)每个Bean方法被调用多少次返回的组件都是新创建的 配置类 Configuration(proxyBeanMethods true) //告诉SpringBoot这是一个配置类 配置文件 public class MyConfig {/*** Full:外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象* return*/Bean //给容器中添加组件。以方法名作为组件的id。返回类型就是组件类型。返回的值就是组件在容器中的实例public User user01(){User zhangsan new User(zhangsan, 18,tomcatPet());//user组件依赖了Pet组件return zhangsan;}Bean(tom)public Pet tomcatPet(){return new Pet(tomcat);} }SpingBoot启动类 SpringBootConfiguration EnableAutoConfiguration ComponentScan(com.dragon.boot) public class MainApplication {public static void main(String[] args) {//1、返回我们IOC容器ConfigurableApplicationContext run SpringApplication.run(MainApplication.class, args);//2、查看容器里面的组件// String[] names run.getBeanDefinitionNames();// for (String name : names) {// System.out.println(name);// }//3、从容器中获取组件Pet tom01 run.getBean(tom, Pet.class);Pet tom02 run.getBean(tom, Pet.class);System.out.println(组件(tom01 tom02));//4、com.atguigu.boot.config.MyConfig$$EnhancerBySpringCGLIB$$51f1e1ca1654a892MyConfig bean run.getBean(MyConfig.class);System.out.println(bean);//如果Configuration(proxyBeanMethods true)代理对象调用方法。SpringBoot总会检查这个组件是否在容器中有。//保持组件单实例User user bean.user01();User user1 bean.user01();System.out.println(user user1);User user01 run.getBean(user01, User.class);Pet tom run.getBean(tom, Pet.class);System.out.println(用户的宠物(user01.getPet() tom));} }看运行结果分析 组件true 配置类中我用的Full模式Configuration(proxyBeanMethods true) 当然就是单实例模式所有创建的对象都是同一个对象。com.dragon.boot.config.MyConfig$ $ SpringCGLIB$$0283e8358 这个输出是我getBean获取的配置类组件可以看出配置类本身也是组件。用户的宠物true 当我开启单实例模式时就能够处理依赖关系这里我创建的组件宠物用户组件里的宠物User zhangsan new User(zhangsan, 18,tomcatPet());。我创建的用户组件时就是调用的tomcatPet()因为是单实例模式所以我在创建用户调用创建的宠物和直接创建的宠物都是同一个对象。 启动类中我写了个查看容器里面的组件的方法注释掉了可以运行在控制台CtrlF搜索查看注册的组件。 将proxyBeanMethods 属性改成false运行结果就变成了false。 总结 配置 类组件之间无依赖关系用Lite模式加速容器启动过程减少判断配置 类组件之间有依赖关系方法会被调用得到之前单实例组件用Full模式默认 二、Import导入组件 Bean、Component、Controller、Service、Repository它们是Spring的基本标签在Spring Boot中并未改变它们原来的功能。 ComponentScan在Spring学习中大家一定接触了吧就是开启组件扫描。 Import({User.class、DBHelper.class})会给容器中自动创建出User、DBHelper组件默认组件的名字就是全类名。如果创建多个组件就在在大号内添加用逗号隔开。 Import({User.class,DBHelper.class}) Configuration(proxyBeanMethods false) //告诉SpringBoot这是一个配置类 配置文件 public class MyConfig {//.... }启动类 //1、返回我们IOC容器 ConfigurableApplicationContext run SpringApplication.run(MainApplication.class, args);//...//5、获取组件 String[] beanNamesForType run.getBeanNamesForType(User.class);for (String s : beanNamesForType) {System.out.println(s); }三、Conditional条件装配 条件装配满足Conditional指定的条件则进行组件注入 这里用ConditionalOnMissingBean举例说明 ConditionalOnMissingBean(name “tt”) 用在类上没有tt名字的Bean时才会将类里所有配置注册成组件 用在方法上没有tt名字的Bean时才会将改方法注册成组件 Configuration(proxyBeanMethods true) //告诉SpringBoot这是一个配置类 配置文件 Import({User.class}) ConditionalOnMissingBean(name tom) public class MyConfig {/*** Full:外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象* return*/Bean //给容器中添加组件。以方法名作为组件的id。返回类型就是组件类型。返回的值就是组件在容器中的实例public User user01(){User zhangsan new User(zhangsan, 18,tomcatPet());//user组件依赖了Pet组件return zhangsan;}Bean(tom)public Pet tomcatPet(){return new Pet(tomcat);} }启动类 ConfigurableApplicationContext run SpringApplication.run(MainApplication.class, args);//2、查看容器里面的组件String[] names run.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}boolean tom run.containsBean(tom);//是否包含某个组件System.out.println(容器中Tom组件tom);//falseboolean user01 run.containsBean(user01);System.out.println(容器中user01组件user01);//trueboolean tom22 run.containsBean(tom22);System.out.println(容器中tom22组件tom22);//true四、ImportResource导入Spring配置文件 公司项目使用bean.xml文件生成配置bean然而你为了省事想继续复用bean.xmlImportResource粉墨登场。 bean.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdbean idhaha classcom.dragon.boot.bean.Userproperty namename valuezhangsan/propertyproperty nameage value18/property/beanbean idhehe classcom.atguigu.boot.bean.Petproperty namename valuetomcat/property/bean /beans复用方法 ImportResource(classpath:bean.xml) public class MyConfig {//... }启动类测试 //1、返回我们IOC容器ConfigurableApplicationContext run SpringApplication.run(MainApplication.class, args);boolean haha run.containsBean(haha);boolean hehe run.containsBean(hehe);System.out.println(hahahaha);//trueSystem.out.println(hehehehe);//true返回true说明注册成了组件。 五、ConfigurationProperties配置绑定 使用Java读取到properties文件中的内容并且把它封装到JavaBean中 传统方法 public class getProperties {public static void main(String[] args) throws FileNotFoundException, IOException {Properties pps new Properties();pps.load(new FileInputStream(a.properties));Enumeration enum1 pps.propertyNames();//得到配置文件的名字while(enum1.hasMoreElements()) {String strKey (String) enum1.nextElement();String strValue pps.getProperty(strKey);System.out.println(strKey strValue);//封装到JavaBean。}}}SpringBoot的两种方法 ConfigurationProperties Component 假设有配置文件application.properties mycar.brandBYD mycar.price100000只有在容器中的组件才会拥有SpringBoot提供的强大功能所以Bean对象类注册成组件 下面的prefix是指属性前缀 Component ConfigurationProperties(prefix mycar) public class Car { ... }EnableConfigurationProperties ConfigurationProperties 1.开启Car配置绑定功能 2.把这个Car这个组件自动注册到容器中 配置类 EnableConfigurationProperties(Car.class) public class MyConfig {//... }Car类 ConfigurationProperties(prefix mycar) public class Car {//... }HelloController类 RestController public class HelloController {AutowiredCar car;RequestMapping(/car)public Car car(){return car;}RequestMapping(/hello)public String handle01(){return HelloSpring Boot 2!你好;} }这里我写了个控制层运行结果如下 可以看出确实将properties文件内的内容封装了。 总结 以上就是SpringBoot的一些底层注解的讲解。
http://www.yutouwan.com/news/350905/

相关文章:

  • 淄博高端网站建设公司网站页面在线设计
  • 深圳找个做网站平台的公司宣传册设计与制作公司
  • 网站备案查询工信网丽水建设部门网站
  • 网站正在建设中...徐州免费模板建站
  • 在线ppt制作网站有哪些万网科技
  • 建设集团公司网站做哪个软件网站app
  • 建站技术分享用c 建网站时怎么做导航菜单栏
  • 贵州成品网站网店推广运营
  • 电器类网站设计wordpress 生成图片不显示
  • 自己做网站怎么样wordpress dns解析
  • 高端网站建设专家评价WordPress京东淘宝主题
  • 网站开发模板下载苏州网站建设排名
  • 个人主页网站模板免费wordpress 评论框 提示
  • 建设网站培训wordpress菜单管理
  • 网站建设合同要交印花吗wordpress繁体
  • 网站建设比较合理的流程软件开发项目管理文档
  • 网站建设哪里有学网站推广120种方法
  • 购物网站开发的必要性给手机做网站的公司
  • 网站建设 项目书 框架提供设计网站效果图
  • 法语网站建站公司定制化网站一般价格
  • 东莞有什么比较好的网站公司电子商务网站建设基础项目实训
  • 静态网站如何入侵有人有片吗视频免费的
  • 徐州模板建站定制网站wordpress给栏目页加后缀
  • 营销型网站建设申请域名免费开源小程序商城源码
  • 天津站内关键词优化c语言开发网站后端
  • 建设专业网站电话咨询公司网站需要修改
  • 贵州安顺建设局网站翻译网页
  • 网站建设三合一 500元多语言网站seo
  • 工商网站查询企业seo网站优化专员
  • 大连零基础网站建设培训中心wordpress 头部 固定