spring boot 学习笔记(1)

@ComponentScan@EntityScan 和@SpringBootApplication ,我们通常用它来注释启动类。spring
boot的启动类也就是main类一般都放在根文件夹下。比如:

package testRedis.main;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;

/**
 * Hello world!
 */
@EnableAutoConfiguration
@ComponentScan
public class App
{
    public static void main( String[] args )
    {
	SpringApplication app =new SpringApplication(App.class);
        app.run(args);
    }
}

上个会启动spring boot的主程序,初始化bean。 @EnableAutoConfiguration 注释默认当前文件夹为搜索的根文件夹。如果你用不带参数的 @ComponentScan 注释在主程序中,它会自动装载@Component@Service@Repository@Controller做为“spring
bean” 。

具体一个例子,我在测试redis时,启动spring boot 需要 执行mutiThread方法,需要默认启动它。因此我在方法前加上@Bean,并且在类前方加上了@configuration注释。这样 @ComponentScan 就能找到@configuration里下配置的@bean,尝试装载bean的同时执行了mutiThread方法。当然这只是为了学习才这样做。去掉 @ComponentScan 和@configuration中的任意一个,mutiThread都不能执行。

@Configuration
@EnableConfigurationProperties
public class testCase1 {
	@Autowired
	@Qualifier("taskExcute")
	private TaskExcute taskExcute;
	@Value("${cl.size:1000000}")
	private int size;

    @Bean
    public String mutiThread(){
    	Map<String,Object> map=new HashMap<String,Object>();
		for(int i=size;i>0;i--){
			map.put("name"+i, "foo");
		}
    	try {
			taskExcute.dotasks(map);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ExecutionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return "hello world!";
    }
}

用 @ComponentScan 就不需要指定 basePackage 。如果你的主main程序在根文件夹的话@SpringBootApplication 也可以起同样的效果。

spring boot会基于你的class path 下的jar包依赖自动配置你的spring程序。具体什么情况,有待深入研究。

这个功能自动配置加载的功能,可以通过以下方式禁掉。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

如果这个类没有在 classpath, 你可以用 excludeName 这个注释属性。

jar运行方式。

你可以借助maven或者gradle打包的你程序,生成可执行jar。我用的maven,执行clean install命令,可以直接install如果是第一次运行,或者用package。

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar

时间: 2024-10-09 17:34:48

spring boot 学习笔记(1)的相关文章

Spring boot 学习笔记 (二)- 整合MyBatis

Spring boot 学习笔记 (二)- 整合MyBatis Spring Boot中整合MyBatis,并通过注解方式实现映射. 整合MyBatis 以Spring boot 学习笔记 (一)- Hello world 为基础项目,在pom.xml中添加如下依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter&l

Spring boot 学习笔记 - Hello world

Spring boot 学习笔记 - Hello world spring boot介绍: spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Hello world 通过官网https://start.spring.io/

Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用

前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文主要围绕以下几点进行说明: Spring Boot 简介 使用Spring Boot快速搭建一个Web应用如有不对的地方,请指正. 1. Spring Boot简介 Spring Boot是一个基于Spring的衍生框架,其主要的目的是帮助我们快速构建独立.生产级别的Spring的应用,其崇尚的理念

我的第一个spring boot程序(spring boot 学习笔记之二)

第一个spring boot程序 写在前面:鉴于spring注解以及springMVC的配置有大量细节和知识点,在学习理解之后,我们将直接进入spring boot的学习,在后续学习中用到注解及其他相关知识点时会再次理解.要运行起第一个Spring boot特别简单,用IDEA包含了Spring Boot的引导,直接新建一个spring boot项目. 注意: 1.第一次新建Spring boot项目的时候,maven会下载大量的依赖到本地,所以特别慢,耐心等待或者用国内的maven公库都行(自

spring boot学习笔记一

一直以来用java做web开发总是需要解决各种依赖和配置很是烦人spring boot在这方面做的很好.用maven管理项目只需要简单的引入几个包就可以做web开发.下面是一个例子 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2

Spring Boot 学习笔记--整合Thymeleaf

1.新建Spring Boot项目 添加spring-boot-starter-thymeleaf依赖 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-thymeleaf</artifactId> 4 </dependency> 2.添加静态文件 根据spring boot默认规则,脚本和样式默

spring boot学习笔记

spring boot 是什么 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. spring boot采用了“约定优于配置” 的理念,减少了spring繁琐的配置,方便快速搭建应用 spring boot官网:http://projects.spring.io/spring-boot/ maven配置: <parent> <groupId>org.springframework.boot</group

spring boot整合jsp的那些坑(spring boot 学习笔记之三)

Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <depend

spring boot 学习笔记

Spring Boot系列(一):Spring Boot 入门篇 Spring Boot系列(二):web综合开发 Spring Boot系列(三):Spring Boot中Redis的使用 Spring Boot系列(四):thymeleaf使用详解 Spring Boot系列(五):spring data jpa的使用 Spring Boot系列(六):如何优雅的使用mybatis Spring Boot系列(七):springboot+mybatis多数据源最简解决方案 Spring Bo