SpringBoot入门篇和注解
一,SpringBoot是什么?
SpringBoot是一个框架,目的就是为了简化在使用spring其他框架时所需要的大量的配置文件,使其配置变的相当简单,也让应用部署变得简单。
二,SpringBoot的特性是什么?
1,内置服务器,直接嵌入Tomcat,jetty等,在应用部署时不再使用war包,直接jar包即可使用
2,自动进行spring框架的配置,在之前的项目中,我们经常把配置文件放入的resource中进行管理,集成springboot后,只需要一个配置文件,其包含端口号,数据库连接信息,操作及其简单,完全不需要任何xml的配置,节省大量的时间和精力。
三,创建springboot项目的三种方式
1,通过IDEA或者eclipse的spring Initializer创建
2,访问https://start.spring.io 创建
3,自己手动创建
注意:DemoApplication是springboot的启动类
四, SpringBoot需要的依赖
1,核心依赖,必须引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<type>pom</type>
</dependency>
2,web项目,添加web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
3,热启动,(非必须依赖,调试可用,修改之后可以实时生效)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
五,常用注解
1,注解在application上:
@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan,
2,@Configuration 和其 @bean
使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean
3,@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
4,@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
5,@ServletComponentScan 注解加上后拦截器失效 去掉后 过滤器和监听器失效,一般类中写的都是main方法。
6,@Import(DbConfig.class) //导入CDConfig的配置文件
7,@ImportResource("classpath:dubbo-consumer.xml") //导入xml配置项
8, @PropertySource("classpath:config.properties") //导入properties文件
9,@EnableAsync 可以异步执行,就是开启多线程的意思。可以标注在方法、类上。为了让@Async注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsync,@Async所修饰的函数不要定义为static类型,这样异步调用不会生效。@Async所修饰的方法不能同类调用,此时不能形成代理模式,异步调用不生效
10,@EnableScheduling 开启定时任务,为了让@Scheduled注解能够生效还需要在Spring Boot的主程序中配置
11 @value 需要参数。这里参数可以是两种形式:@Value("#{configProperties['name']}")或者@Value("${name}");
若需要注解添加默认值,则为:@Value("${name:xinxin}");