赞
踩
1、导入jar
springboot:内置tomcat 提供了自动的配置 搭建spring应用的脚手架
<!--所有的springboot应用都要以该工程为父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>
<!--启动器:每一个启动器背后都是一堆的依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.@RestController相当于 Controller+ResponseBody 一般返回值返回到json文件里面
3.http://127.0.0.1:8080/hello/show hello全局 show函数名
配置用于@Configuration class的组件扫描指令。提供与Spring XML元素并行的支持。可以指定basePackageClasses或basePackages(或其别名值)来定义要扫描的特定包。如果未定义特定的包,将从声明此注释的类的包中进行扫描
类似于<context:component-scan base-package=“路径”> 扫描该类所在的包以及它的子子孙孙包
5.@SpringBootApplication
//使用组合注解 相当于@EnableAutoConfiguration 和 @ComponentScan @SpringBootConfiguration
6.springboot配置方式 属性注入
(1)
package cn.itcast.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration //声明一个类是java配置类 相当于一个xml配置文件 @PropertySource("classpath:application.properties") //读取资源文件 public class JdbcConfiguration { //2.接收之后注入 用value以及$符号 //1.读取好之后接收 设置参数 @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean //把方法的返回值注入到spring容器里 public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(this.driverClassName); //这里的this代表全局变量 不可以在函数括号中写 此处也可以省略this dataSource.setUrl(this.url); dataSource.setUsername(this.username); dataSource.setPassword(this.password); return dataSource; } }
在HelloController中注入
package cn.itcast.springboot.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.sql.DataSource; //此处也可以用Controller RestController相当于 Controller+ResponseBody 一般返回值返回到json文件里面 @RestController @RequestMapping("hello") //全局 @EnableAutoConfiguration //启动自动配置 public class HelloController { @Autowired private DataSource dataSource;//此处注入 //Responsebody 因为有Restcontroller所以省略 @GetMapping("show") public String test(){ return "hello world"; } }
加断点 在run类中进行debug运行 查看注入情况
运行run后 输入127.0.0.1:8080/hello/show 查看数据注入情况
此处可看到数据已经注入进来
在debug中查看配置所需参数 是否注入
7.当你所定义的属性 不仅想在该配置类中使用 还想在其他配置类中使用时:
可再创建一个类 专门作属性的使用出入 该类称为属性读取类
JdbcProperties
springboot 提供了 @ConfigurationProperties
有了该类后 配置文件类几个部分可以注释掉
第一种注入方式:通过注解@Autowired
JdbcConfiguration 配置类中
```java package cn.itcast.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration //声明一个类是java配置类 相当于一个xml配置文件 //@PropertySource("classpath:application.properties") //读取资源文件 @EnableConfigurationProperties(JdbcProperties.class) //让自动注入可行 public class JdbcConfiguration { // //2.接收之后注入 用value以及$符号 // //1.读取好之后接收 设置参数 // @Value("${jdbc.driverClassName}") // private String driverClassName; // @Value("${jdbc.url}") // private String url; // @Value("${jdbc.username}") // private String username; // @Value("${jdbc.password}") // private String password; //写了属性读取类之后 可实例化在此处进行使用 @Autowired private JdbcProperties jdbcProperties; @Bean //把方法的返回值注入到spring容器里 public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(this.jdbcProperties.getDriverClassName()); //这里的this代表全局变量 不可以在函数括号中写 此处也可以省略this dataSource.setUrl(this.jdbcProperties.getUrl()); dataSource.setUsername(this.jdbcProperties.getUsername()); dataSource.setPassword(this.jdbcProperties.getPassword()); return dataSource; } }
JdbcProperties 属性读取类中
package cn.itcast.springboot.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "jdbc") //configuration 自动读取application 里面的配置文件 public class JdbcProperties { private String driverClassName; private String url; private String username; private String password; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
第二种注入方式:通过构造方法
package cn.itcast.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration //声明一个类是java配置类 相当于一个xml配置文件 //@PropertySource("classpath:application.properties") //读取资源文件 @EnableConfigurationProperties(JdbcProperties.class) //让自动注入可行 public class JdbcConfiguration { // //2.接收之后注入 用value以及$符号 // //1.读取好之后接收 设置参数 // @Value("${jdbc.driverClassName}") // private String driverClassName; // @Value("${jdbc.url}") // private String url; // @Value("${jdbc.username}") // private String username; // @Value("${jdbc.password}") // private String password; //写了属性读取类之后 可实例化在此处进行使用 // 第二种注入方式 不用Autowired // @Autowired private JdbcProperties jdbcProperties; public JdbcConfiguration (JdbcProperties jdbcProperties){ this.jdbcProperties = jdbcProperties; } @Bean //把方法的返回值注入到spring容器里 public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(this.jdbcProperties.getDriverClassName()); //这里的this代表全局变量 不可以在函数括号中写 此处也可以省略this dataSource.setUrl(this.jdbcProperties.getUrl()); dataSource.setUsername(this.jdbcProperties.getUsername()); dataSource.setPassword(this.jdbcProperties.getPassword()); return dataSource; } }
第三种方法注入:通过Bean方法的形参注入
package cn.itcast.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration //声明一个类是java配置类 相当于一个xml配置文件 //@PropertySource("classpath:application.properties") //读取资源文件 @EnableConfigurationProperties(JdbcProperties.class) //让自动注入可行 public class JdbcConfiguration { // //2.接收之后注入 用value以及$符号 // //1.读取好之后接收 设置参数 // @Value("${jdbc.driverClassName}") // private String driverClassName; // @Value("${jdbc.url}") // private String url; // @Value("${jdbc.username}") // private String username; // @Value("${jdbc.password}") // private String password; //写了属性读取类之后 可实例化在此处进行使用 // 第二种注入方式 不用Autowired // @Autowired // private JdbcProperties jdbcProperties; // public JdbcConfiguration (JdbcProperties jdbcProperties){ // this.jdbcProperties = jdbcProperties; // } @Bean //把方法的返回值注入到spring容器里 public DataSource dataSource(JdbcProperties jdbcProperties){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(jdbcProperties.getDriverClassName()); //这里的this代表全局变量 不可以在函数括号中写 此处也可以省略this dataSource.setUrl(jdbcProperties.getUrl()); dataSource.setUsername(jdbcProperties.getUsername()); dataSource.setPassword(jdbcProperties.getPassword()); return dataSource; } }
第四种注入方式:@ConfigurationProperties(prefix=“jdbc”)
package cn.itcast.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration //声明一个类是java配置类 相当于一个xml配置文件 //@PropertySource("classpath:application.properties") //读取资源文件 @EnableConfigurationProperties(JdbcProperties.class) //让自动注入可行 public class JdbcConfiguration { // //2.接收之后注入 用value以及$符号 // //1.读取好之后接收 设置参数 // @Value("${jdbc.driverClassName}") // private String driverClassName; // @Value("${jdbc.url}") // private String url; // @Value("${jdbc.username}") // private String username; // @Value("${jdbc.password}") // private String password; //写了属性读取类之后 可实例化在此处进行使用 // 第二种注入方式 不用Autowired // @Autowired // private JdbcProperties jdbcProperties; // public JdbcConfiguration (JdbcProperties jdbcProperties){ // this.jdbcProperties = jdbcProperties; // } @Bean //把方法的返回值注入到spring容器里 @ConfigurationProperties(prefix = "jdbc") //configuration 自动读取application 里面的配置文件 public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); return dataSource; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。