SpringBoot基础:基本配置

1,入口类和@SpringBootApplication
    Spring Boot通常有一个名为*Application的入口类,入口里面有一个main方法,这个main方法其实就是一个标准的Java应用的入口方法,在main方法中使用SpringApplication.run(XXX.class,args),启动Spring Boot应用项目。
@SpringBootApplication是Sring Boot的核心注解,它是一个组合注解,源码如下:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication {
    Class<?>[] exclude() default {};
    String[] excludeName() default {};
    Class<?>[] scanBasePackageClasses() default {};
}
@SpringBootApplication注解主要组合@Configuration、@EnableAutoConfiguration、@ComponentScan,不一定需要@SpringBootApplication注解,如果不使用,则可以在入口类上直接使用@Configuration、@EnableAutoConfiguration、@ComponentScan注解
其中注解功能:
@EnableAutoConfiguration:让Spring Boot根据路径中的jar包依赖为当前项目进行自动配置。
例如,添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,那么Spring Boot会对Tomcat和Spring MVC进行自动配置。
Spring Boot会自动扫描@SpringBootApplication所在类的同级包(cn.javabb)以及下级包里的Bean,在上一个项目HelloWorld中,如果你的HelloController不是在入口类的同级包或者下级包中,那么你的请求是不成功。自己可以测试一下。

2,关闭特定的自动配置
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
3,定制Banner
启动项目默认的Spring Boot图案
04082839_XqIm.png
 复制要生成的字符,复制到src/main/resource下新建的banner.txt文本文件,
04082839_mkx8.png
 4,配置文件
Spring Boot使用一个全局的配置文件application.properties或者application.yml
application.preperties的作用是对一些默认配置的配置值进行修改。
常用实例:
server.port=9090
server.context-path=/helloboot
    
#日志
logging.file=D:/logs/log.log
logging.level.org.sprngframeword.web=DEBUG
   04082839_rrkR.jpg
  04082839_IV0U.jpg
 
5,starter pom
官方提供的starter pom,用于支持各种技术
04082839_j0qq.png
 6,xml配置
    spring boot提供零配置,但是有些特殊场景,我们需要使用xml配置的时候,我们可以通过spring提供的@ImportResource来加载
    
@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})
7,外部配置
    在Spring boot里面我们只需要在application.properties里面定义值,然后直接使用注解@Value注入即可
    在application.properties中添加如下值
javabb.username=zhangsan
javabb.age=22
在代码中使用@Value注入
@RestController
public class HelloController {
	
	@Value("${javabb.username}")
	private String username;
	
	@Value("${javabb.age}")
	private String age;
	
	@RequestMapping("helloWorld")
	public String sayHello(){
		return "Hello,SpringBoot!";
	}
	@RequestMapping("/showMe")
	public String showMe(){
		return "username:"+username+"<br/>age:"+age;
	}
}
04082839_iHUm.jpg
 8,类型安全配置
上面的配置如果是在项目中用的地方较多的时候就显得有点繁琐,因为我们的配置通常很多,上面这样就需要注入很多次
这里配置一个注入一次的方法。
javabb.username=zhangsan
javabb.age=22
建立一个配置实体
package cn.javabb.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="javabb")
public class Javabb {

	private String username;
	private Integer age;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
}
在使用的时候就可以直接通过Resource或者Autowired直接注入这个类
    @Resource
	private Javabb javabb;
上面的配置是在application.properties里面,这里加载的properties也可以在另外的配置中加载
如果自定义配置的文件则需要使用下面的类注解
@ConfigurationProperties(prefix="javabb",locations={"classpath:config/javabb.properties"})

转载于:https://my.oschina.net/qinbao/blog/1528373

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值