您的位置:首页 > 编程语言 > Java开发

Spring_boot 入门学习00

2017-10-10 00:00 501 查看

题外话:

如果说spring boot 的话,就应该先说spring ,毕竟spring算是spring boot 的爸爸(按辈分说)。。。

spring 作为一个全局性框架 ,非常优秀。可以无缝 连接其他的 框架 比如 持久层框架的 hibernate 、mybatis 。

所谓全局性,应该类比成一个 管家的身份, 它 帮你干了很多 繁琐的事情,比如以前,我们如果想生成一个对象,并且想往里面设置初始值,

比如 web 应用中,典型的mvc结构

controller 层中 持有 service 的示例,我们自己的做法就是new service() 赋值给 controller 中的对象。有了spring 把 这个对象 交给spring 来管理,然后我们只需在这个对象上面写上注解,就能让spring帮我们完成初始化的任务。(ps:可能是我还没有多少项目经验,我感觉这个 “属性注入“ 感觉作用不是很明显,等将来如果有新的体验,或者有什么应用场景就写出来吧,暂时的话,就感觉帮我们初始化,并没有省多大功夫,或者说,作为spring的 核心之一 有点夸大???),当然还能从xml文件中进行配置 注入(构造器注入)。

不过 由于spring 比较的繁琐(比起struts 应该是好的了,毕竟作者就是为了 “装逼” 说struts 太笨重,才写出来的 这个框架。。。真的厉害)。主要还是 xml配置比较多。因此spring boot 就 来了。

spring boot

Spring boot 其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

------百度百科

spring boot 倡导:习惯优于配置。

好了,废话不说了,接下来就先讲讲入门吧,这篇博文主要是收集,记录,一些 注解的意义和使用的地方,因为我看了spring boot 2天了,都是看着别人的教程,写了这个注解,那个注解,关了网页,就不知道这到底是TM 什么鬼,这个注解的作用是什么,为什么要这么写,也是不怎么明白,因此注解就先放在第一天说,最起码眼熟了,等后面慢慢学习了,也就知道是什么回事了。

spirng boot 注解

@ComponentScan

component 是 组件, scan 是扫描 。 意思就是 扫描组件,这个注解主要是用来 进行扫描一些 带有注解的类,让 框架 有一个全局性的把握。(你要不让他扫描,有什么类是干什么的 ,它也是不可能知道的。)

举个栗子:

ps:纯粹是为了作用,不必早已是否能看懂其他配置。等下一节应该就能完全看懂了。

这个是 入口。 上面没有 @componentScan 注解,



下面就是写了一个普通方法, requestMapping 总知道是什么吧???!!!

好了 启动访问以下这路径



页面并不能访问的到。



下面加上这个注解:





你看,这样就能访问的到了。

当然,这个注解还有一个属性 就是选择 扫描的范围 ,如果不写的话就 默认只扫描本包,如果写路径,就扫描路径下面的包,子包中的所有类。

用法:@ComponentScan(basePackages={"com"}) (basePackages是一个数组形式的。可以扫描多个包)

这个注释一般 都用在主入口处吧。。。

@EnableAutoConfiguration

@EnableAutoConguration是和自动化配置相关的东西。

Enable auto-configuration of the Spring Application Context, attempting to guess and configure beans that you are likely to need. Auto-configuration classes are usually applied based on your classpath and what beans you have defined.
Auto-configuration tries to be as intelligent as possible and will back-away as you define more of your own configuration. You can always manuallyexclude() anyconfiguration that you never want to apply (use excludeName() if you don'thave access to them). You can also exclude them via thespring.autoconfigure.exclude property. Auto-configuration is always appliedafter user-defined beans have been registered.
The package of the class that is annotated with @EnableAutoConfiguration has specific significance and is often used as a 'default'. For example, it will be usedwhen scanning for@Entity classes. It is generally recommended that you place@EnableAutoConfiguration in a root package so that all sub-packages and classescan be searched.
Auto-configuration classes are regular Spring Configuration beans. They are located using the SpringFactoriesLoader mechanism (keyed against this class).Generally auto-configuration beans are@Conditional beans (mostoften using @ConditionalOnClass and@ConditionalOnMissingBean annotations).

这是官网的英文。

贴点别人的解释:

首先,顾名思义,@EnableAutoConguration是和自动化配置相关的东西。

官网的第一段话主要是说,Spring应用上下文的自动化配置,尝试去猜测和配置你需要的bean。这些被自动化配置的类通常在classpath路径下,或者是你自己定义的bean。

第二段话主要是说,你可以使用exclude来排除那些你不想被自动化配置的类。

第三段是讲:被@AutoConfiguration注解的类所在的包有着特殊的意义,他们通常被认为是默认的包,并对其及下属的包进行扫描。

第四段前半句是说,被自动配置的类通常是在@Configuration里面配置的类。

大概的意思就是,他舍弃了 xml配置,而是去猜想你如何去配置。

根据应用所声明的依赖来对 Spring 框架进行自动配置,这就减少了开发人员的工作量。

这个真的是挺厉害的。

写在主入口的类上。

@Configuration

@Configuration可理解为用spring的时候xml里面的<beans>标签。

至于 beans 标签...再搜吧。

@SpringBootApplication

这个是以上三个的合体。这是一般最开始学习时,懒人配置,直接让spring boot 自动帮你配置好,我们直接写代码就好,无需去多余的配置。

写在主入口的类上。

@RestController

@Controller

定义这个类是一个 controller层。

在类上面使用。

@ResponseBody

定义这个方法是返回json字符串的。

在方法上使用。

@RestController 其实就是以上 二者的结合。声明他是一个控制层,且是返回的都是json的,或者是null的,或者是void方法。

@Autowired

这个是注入的注解,就是spring 帮你把实例对象地址交给变量,完成初始化。

@Value

这个是跟自动注入有点类似,不过注入的是 properties文件中的,支持el表达式形式。

而且这个priperties 文件 必须是 application.properties。

这个不用写出set方法

@ConfigurationProperties

这个也是自动注入properties ,跟上面的value 注解类似,不过毕竟@value 一个一个注入,要写很多,很累的。

这个注解可以将整个properties 封装到javabean中 。

注意:需要写出set方法。

@PropertySource

当我们想使用其他properties文件作为 常量,比如jdbc,log4j,毕竟这样分着更明显。因此可以使用这个注解进行显示指定某个 properties

用法:@PropertySource("classpath:xxxxx.properties")

暂时使用的只有这些,因为我也是刚开始学习。用到后就慢慢添加。毕竟不懂注解,会很烦。。。

未完待续.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring Boot 入门 注解