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

网站模板网站制作费

网站模板,网站制作费,wordpress移动端底部导航,图书馆管理网站建设logo越来越方便了 java技术生态发展近25年,框架也越来越方便使用了,简直so easy!!!我就以Spring衍生出的Spring boot做演示,Spring boot会让你开发应用更快速。 快速启动spring boot 请参照官网 Spring | Quic…

越来越方便了

 java技术生态发展近25年,框架也越来越方便使用了,简直so easy!!!我就以Spring衍生出的Spring boot做演示,Spring boot会让你开发应用更快速。

快速启动spring boot 请参照官网 Spring | Quickstart

代码如下:

@SpringBootApplication
@RestController
public class SpringBootTestApplication {public static void main(String[] args) {SpringApplication.run(SpringBootTestApplication.class, args);}@GetMapping("/hello")public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {return String.format("Hello %s!", name);}
}

注maven的pom文件 (部分):

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope>
</dependency>

运行

通过浏览器方法http://localhost:8080/hello

至此一个简单的spring boot应用开发完毕,要是公司企业的展示性网站用这种方式极快。

我们重点关注一下这个@SpringBootApplication注解,就是因为它,程序运行主类,相当于跑了一个tomcat中间件,既然能通过web访问,说明是一个web应用程序。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
/*** Exclude specific auto-configuration classes such that they will never be applied.* @return the classes to exclude*/@AliasFor(annotation = EnableAutoConfiguration.class)Class<?>[] exclude() default {};/*** Exclude specific auto-configuration class names such that they will never be* applied.* @return the class names to exclude* @since 1.3.0*/@AliasFor(annotation = EnableAutoConfiguration.class)String[] excludeName() default {};/*** Base packages to scan for annotated components. Use {@link #scanBasePackageClasses}* for a type-safe alternative to String-based package names.* <p>* <strong>Note:</strong> this setting is an alias for* {@link ComponentScan @ComponentScan} only. It has no effect on {@code @Entity}* scanning or Spring Data {@link Repository} scanning. For those you should add* {@link org.springframework.boot.autoconfigure.domain.EntityScan @EntityScan} and* {@code @Enable...Repositories} annotations.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackages")String[] scanBasePackages() default {};/*** Type-safe alternative to {@link #scanBasePackages} for specifying the packages to* scan for annotated components. The package of each class specified will be scanned.* <p>* Consider creating a special no-op marker class or interface in each package that* serves no purpose other than being referenced by this attribute.* <p>* <strong>Note:</strong> this setting is an alias for* {@link ComponentScan @ComponentScan} only. It has no effect on {@code @Entity}* scanning or Spring Data {@link Repository} scanning. For those you should add* {@link org.springframework.boot.autoconfigure.domain.EntityScan @EntityScan} and* {@code @Enable...Repositories} annotations.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")Class<?>[] scanBasePackageClasses() default {};......略了
}

发现@SpringBootApplication注解是一个组合型注解,有3个Spring annotations:@SpringBootConfiguration, @ComponentScan, and @EnableAutoConfiguration ,记住@EnableAutoConfiguration注解很重要,其次@ComponentScan注解。

@EnableAutoConfiguration注解,spring boot 会基于classpath路径的jar、注解和配置信息,会自动配置我们的应用程序,所有的这些注解会帮助spring boot 自动配置我们的应用程序,我们不必担心配置它们。我演示的代码,spring boot会检查classpath路径,由于有依赖spring-boot-starter-web,Spring boot会把项目配置成web应用项目,另外Spring Boot将把它的HelloController当作一个web控制器,而且由于我的应用程序依赖于Tomcat服务器(spring-boot-starter-tomcat),Spring Boot也将使用这个Tomcat服务器来运行我的应用程序。

特别注意,框架里是否装载Bean会配合条件表达式一起使用

 真正使用时是混合使用的

@EnableAutoConfiguration代码:

package org.springframework.boot.autoconfigure;@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";/*** Exclude specific auto-configuration classes such that they will never be applied.* @return the classes to exclude*/Class<?>[] exclude() default {};/*** Exclude specific auto-configuration class names such that they will never be* applied.* @return the class names to exclude* @since 1.3.0*/String[] excludeName() default {};}

又有两个需要理解的元注解meta-annotation : @AutoConfigurationPackage 和@Import(AutoConfigurationImportSelector.class)

@AutoConfigurationPackage代码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AutoConfigurationPackages.Registrar.class)
public @interface AutoConfigurationPackage {String[] basePackages() default {};Class<?>[] basePackageClasses() default {};
}

这个注解又用了一个@Import, 它的value值是:  AutoConfigurationPackages.Registrar.class.,而

AutoConfigurationPackages.Registrar 实现ImportBeanDefinitionRegistrar。还记得我以前写的博文Spring Bean注册的几种方式Spring Bean注册的几种方式_filterregistrationbean beandefinitionregistrypostp_董广明的博客-CSDN博客吗

@Import(AutoConfigurationImportSelector.class)

这个注解是自动配置机制,AutoConfigurationImportSelector实现了 DeferredImportSelector.

这个选择器的实现使用spring core功能方法:SpringFactoriesLoader.loadFactoryNames() ,该方法从META-INF/spring.factories加载配置类

而这个引导配置类从spring-boot-autoconfigure-2.3.0.RELEASE-sources.jar!/META-INF/spring.factories文件加载,该文件有键org.springframework.boot.autoconfigure.EnableAutoConfiguration

注意spring引导自动配置模块隐式包含在所有引导应用程序中。

参考:

  1. SpringBoot中@EnableAutoConfiguration注解的作用  SpringBoot中@EnableAutoConfiguration注解的作用_51CTO博客_@enableautoconfiguration注解报错

  2. Talking about how Spring Boot works  Talking about how Spring Boot works - Huong Dan Java

  3. How Spring Boot Works? Spring Boot Rock’n’Roll -王福强的个人博客:一个架构士的思考与沉淀
  4.  How Spring Boot auto-configuration works  How Spring Boot auto-configuration works | Java Development Journal
  5. Spring Boot - How auto configuration works? https://www.logicbig.com/tutorials/spring-framework/spring-boot/auto-config-mechanism.html
  6. SpringBoot 启动原理  SpringBoot 启动原理 | Server 运维论坛

  7. How SpringBoot AutoConfiguration magic works? https://www.sivalabs.in/how-springboot-autoconfiguration-magic/

  8. @EnableAutoConfiguration Annotation in Spring Boot @EnableAutoConfiguration Annotation in Spring Boot
http://www.bjxfkj.com.cn/article/110949.html

相关文章:

  • ps毕业设计做网站界面安装应用商店
  • 太仓高端网站制作如何用wordpress做视频网站
  • 网站打不开怎么回事高端的佛山网站建设价格
  • 国外有哪些网站可以做电商静态网站设计方案
  • 登陆网站显示域名解析错误怎么办淄博做网站
  • 高端网站建设价格网站seo基础
  • 梦幻西游网页版官方网站网站怎么做长尾词
  • 国外的网站需要备案吗厦门网站建设的公司
  • 格力网站建设首页wordpress示例页面删除
  • 上海网站建设哪工艺品东莞网站建设
  • 深圳英文网站开发怎样购买网站域名
  • 企业网站开发公司有哪些商标版权的应用
  • wordpress 大型网站政务公开和网站建设自查报告
  • 猎头公司网站建设提供网站建设的功能
  • 威县做网站多少钱网站开发毕设开题报告
  • 网站备案什么注销百度站长验证网站
  • 获取网站访客qq代码网络营销公司如何建立
  • 房城乡建设部网站手机怎么制作图文广告
  • 中国建设购物网站图书馆网站建设的要求
  • 网站建站公司哪家好中卫市住房和城乡建设局网站
  • wordpress侧栏导航桂林seo哪家好
  • 网站企业备案代理网新中英企业网站管理系统
  • 北京手机网站开发电话成都网站建设与开发
  • 欧普建站淘宝开店注册流程
  • 网站的基本结构网站基础内容
  • 什么网站可以做注册任务北海做网站有哪家好
  • 网站开发制作云盘php网站开发工程师待遇
  • 深圳网站建设推荐新建网站怎么优化
  • 网站建设总经理岗位职责dede 网站地图模板htm
  • 哪里有建设网站的北京工商注册网官网