SpringBoot从零开始的填坑笔记一

1.环境搭建

1.1.通过maven搭建项目

首先idea创建maven项目,next→next→finish。
在这里插入图片描述
然后在pom.xml中导入依赖:放在标签内即可

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

1.2.通过IDEA的Spring Initializr搭建项目

第一步:选择工程类型
在这里插入图片描述
填写包名,工程名
在这里插入图片描述
选择自己需要的模块→next
在这里插入图片描述
创建完成并且pom.xml中自动导入了相关依赖:
在这里插入图片描述

2.第一个HelloWorld程序

第一步:首先创建一个HelloWorldMainApplication类:

/**
 * @SpringBootApplication 来标注一个主程序类,说明这是一个spring boot应用
 */
 //springboot应用
public class HelloWorldMainApplication {
    public static void main(String[] args) {
        //Spring应用启动
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

第二步:再创建一个HelloController控制类:

@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

目录结构如下:
在这里插入图片描述
第三步:在主类运行项目
在这里插入图片描述
第四步:网站打开http://localhost:8080/hello,运行成功
在这里插入图片描述
OS:WC香的ep,还不用手动配置tomcat。立马学爆

3.将项目打包成jar包

第一步:pom.xml导入插件

<!--这个插件,可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

第二步:右侧Maven,双击package
在这里插入图片描述
在target文件夹生成了项目jar包
在这里插入图片描述
第三步:将jar包拖到桌面,根据jar包路径,通过命令行运行
在这里插入图片描述
在这里插入图片描述
第四步:再次启动网页:启动成功
在这里插入图片描述

4.注入属性的几种方式

4.1.创建两个实体类用于属性的注入

Person类:要生成get,set,tostring方法。
关键注解为:@ConfigurationProperties

@Component//把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
@ConfigurationProperties(prefix = "aaa")//perfix相当于从配置文件中取得id,此处id为aaa
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;//注入日期
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    private Map<String,Object> maps;//注入hash表
    private List<Object> lists;//注入列表
    private Dog dog;//注入对象
    }

Dog类:一样也要生成get,set,tostring方法。

public class Dog {
    private String name;
    private Integer age;
    }

准备两个配置文件:目录结构如下
在这里插入图片描述

4.2.使用yml文件配置

aaa:作唯一标识,注意对齐和缩进,以及冒号后的空格。
关键注解为:@ConfigurationProperties

aaa:
   lastName: 演示一
   age: 18
   boss: false
   birth: 2019/5/19
   maps: {k1: v1,k2: v2}
   lists:
     - lisi
     - zhaoliu
   dog:
     name: 小狗
     age: 2

测试类:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot01HelloQuickApplicationTests {
    @Autowired
    Person person;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
}

运行结果:注入成功
在这里插入图片描述

4.3.使用properties文件进行配置

直接用前缀名 点 属性名赋值即可。效果和yml配置相同。如果乱码可以通过setting设置编码方式。

#idea默认为utf-8编码
#注入person属性
aaa.last-name=演示二
aaa.age=18
aaa.birth=2017/12/15
aaa.boss=false
aaa.maps.k1=v1
aaa.maps.k2=14
aaa.lists=1,2,3
aaa.dog.name=dog
aaa.dog.age=14

通过同一个测试类进行测试:测试结果:注入成功
在这里插入图片描述
注入中文出现乱码问题:
idea解决办法:File→Settings→File Encodings勾选箭头,重新在配置文件输入值并运行即可。
4在这里插入图片描述

4.4.使用@Value注解注入

@Component
public class Person {
   //要生成get set以及toString方法
    @Value("张三")
    private String lastName;
    @Value("18")
    private Integer age;
    @Value("true")
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
    }

结果如下:
在这里插入图片描述

4.5.@ConfigurationProperties和@Value获取值比较

在这里插入图片描述
配置文件yml和properties都能获取到值。
如果只是在某个业务中,获取一下配置文件中的某个值,使用@Value;
如果时专门编写一个javaBean来和配置文件进行映射,那么就使用@ConfigurationProperties;

5.其他的一些注解

5.1.读取指定配置文件@PropertySource

在这里插入图片描述

5.2.springboot中推荐使用配置类@Configuration

代码:

/**
 * @Configuration:指明当前类是一个配置类:用来替代之前的spring配置文件
 **/
@Configuration
public class MyAppConfig {
    // 将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
    @Bean
    public HelloService helloService(){//容器中通过方法名获得对象
        return new HelloService();
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值