使用idea创建一个springboot的项目以及springboot的基本使用

spring的缺点:
1.spring 的组件代码是轻量级的但是他的配置却是重量级的。
2.项目的依赖管理耗时耗力(特别是版本的兼容性问题)。
springboot的特点:
1.基于spring开发提供了更快的入门体验
2.开箱即用,没有代码生成,也没有xml的配置,可以通过修改默认值的方式满足特定的需求。
3.提供了大型项目中常见的非功能特性,如:嵌入式服务器,安全,指标,健康检测,外部配置等。
4.springboot不是对spring功能上的增强,二是提供一种快速使用spring的方式。
SpringBoot的核心功能

---- 起步依赖

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。

简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

---- 自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

​ 注意:起步依赖和自动配置的原理剖析会在第三章《SpringBoot原理分析》进行详细讲解

springBoot的使用:
1.使用idea工具创建一个maven工程,该工程为普通的java工程即可
2.添加SpringBoot的起步依赖
2.1 SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
    </parent>

2.2 SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

3.编写SpringBoot引导类
3.1 要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

	package com.itheima;
	
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
		//声明该类是一个springboot的引导类,也就是一个入口
	@SpringBootApplication
	public class MySpringBootApplication {
		public static void main(String[] args) {
		SpringApplication.run(MySpringBootApplication.class);
		}
    }

4.编写Controller
4.1 在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController

	package com.itheima.controller;

	import org.springframework.stereotype.Controller;
	import org.springframework.web.bind.annotation.RequestMapping;
	import org.springframework.web.bind.annotation.ResponseBody;

	@Controller
	public class QuickStartController {
	//设置一个虚拟的访问地址
		@RequestMapping("/quick")
		//使其返回一个字符串
		@ResponseBody
		public String quick(){
		return "springboot 访问成功!";
		}
	}

5.执行SpringBoot起步类的主方法
tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空
打开浏览器访问url地址为:http://localhost:8080/quick

  • @SpringBootApplication:标注SpringBoot的启动类,
  • SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象

SpringBoot工程热部署

6.我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,
浪费了大量的时间,我们可以在修改代码后不重启就能生效,
在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。

<!--热部署配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

IDEA进行SpringBoot热部署失败原因
出现这种情况,并不是热部署配置问题,其根本原因是因为Intellij IEDA默认情况下不会自动编译,需要对IDEA进
行自动编译的设置。
file–settings–compiler–build project automatically
然后 Shift+Ctrl+Alt+/,选择Registry–complier.automake.allow.when.app.running–close

7.使用idea快速创建SpringBoot项目(注意文件夹的属性java,resources。。。)
file–new–module–spring initializr(选好jdk)–在project metadata中修改group+artifact+java version+package–web(勾选web)

8.配置文件的优先级
*.propertise > .yaml >.yml
优先级高的会把优先级低的覆盖

yml文件的用法(只要是键值之间都有空格)
普通数据的配置:
属性:空格属性值
对象的配置(缩进关系表示层级关系)

     person:
	   name: zhangsan
	   age: 18
	   address: beijing
	   
	server:
	  port: 8082

配置行内对象(对象与属性之间有空格)
person: {name: zhangsan, age: 18, address: beijing}
配置数组,集合(字符串)
(1)普通方式

	city:
	  - jinan
	  - henan
	  - yunnan
	  - hainan
(2)行内方式
city: [jinan,henan,yunnan,hainan]

配置数组,集合(对象)(每一个 - 代表一级)
(1)普通方式

	student:
	  - name: mingren
		age: 18
		addr: dfd
	  - name: ningci
		age: 21
		addr: Japan
(2)行内方式
	student: [{name: zhangsan, age: 18, address: jinan},{name: lisi,age: 20,address: yunnan}]

配置Map集合

 map:
	  key1: value1
	  key2: value2
	  key3: value3

获取yml中的值
1.使用@value注解注入的方式获取值(controller)

  @Value("${count}")
    private String count;
   @Value("${person.address}")
    private String address;

2.在类上@ConfigurationProperties(prefix = “person”)注解,系统会自动的从容器中获取对应的值
“person”是容器中的前缀
实体bean代码(必须添加get set方法)

@Controller
@ConfigurationProperties(prefix = "person")
public class testController2 {
    private String name;
    private String age ;
    private String address;

springBoot整合mybatis
(1)添加mybatis的起步依赖(mybatis提供的起步依赖)

 <!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>

(2)添加数据库驱动坐标

  <!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

(3)添加数据库连接信息

<!-- 在application.properties中添加数据量的连接信息 -->
	#DB Configuration:
	spring.datasource.driverClassName=com.mysql.jdbc.Driver
	spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?
	useUnicode=true&characterEncoding=utf8
	spring.datasource.username=root
	spring.datasource.password=root

(4)在test数据库中创建user表
(6)创建实体Bean(提供getset方法)
(7)编写Mapper
(8)配置Mapper映射文件

  在src\main\resources\mapper路径下加入UserMapper.xml配置文件"
  <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.itheima.mapper.UserMapper">
<select id="queryUserList" resultType="user">
select * from user
</select>
</mapper>

(9)在application.properties中添加mybatis的信息
#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.itheima.domain
#加载Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
(10)编写测试Controller

  @Controller
public class MapperController {

    @Autowired
    private UserMapper userMapper;//发现报错,是因为容器中没有UserMapper,你需要在dao层加一个方法上的@Mapper注解,加了之后还报错不用管,不影响

    @RequestMapping("/queryUser")
    @ResponseBody
    public List<User> queryUser(){
        List<User> users = userMapper.queryUserList();
        return users;
    }

(11)测试

springBoot整合Junit

(1)导入测试的起步依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

(2)写测试类

SpringBoot整合Spring Data JPA
(1)添加Spring Data JPA的起步依赖

<!-- springBoot JPA的起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

(2)添加数据库驱动依赖

<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

(3)在application.properties中配置数据库和jpa的相关属性

#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?
useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

(4)创建实体配置实体

@Entity
public class User {
// 主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 用户名
private String username;
// 密码
private String password;
// 姓名
private String name;
//此处省略setter和getter方法... ...
}

(5)编写UserRepository

public interface UserRepository extends JpaRepository<User,Long> {
    public List<User> findAll();
}
(6)编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes=MySpringBootApplication.class)
public class JpaTest {
@Autowired
private UserRepository userRepository;
@Test
public void test(){
List<User> users = userRepository.findAll();
System.out.println(users);
}
}

如果使用的是jdk9,jdk缺少相应的jar
解决方案:手动导入对应的maven坐标

<!--jdk9需要导入如下坐标-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>

springboot整合Redis
(1)添加redis的起步依赖

<!-- 配置使用redis启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

(2)配置redis的连接信息

#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
(3)注入RedisTemplate测试redis操作
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MySpringBootApplication.class)
public class RedisTest {
    @Autowired
    private RedisTemplate<String,String> redisTemplate;
    //<bean class="RedisTemplate">
    @Autowired
    private UserRepository userRepository;
    @Test
    public void test() throws JsonProcessingException {
        //1、从redis中获得数据 数据的形式json字符串
        String userListJson = redisTemplate.boundValueOps("user.findAll").get();
        //2、判断redis中是否存在数据
        if(null==userListJson){
            //3、不存在数据 从数据库查询
            List<User> all = userRepository.findAll();
            //4、将查询出的数据存储到redis缓存中
            //向将list集合转换成json格式的字符串  使用jackson进行转换
            ObjectMapper objectMapper = new ObjectMapper();
            userListJson = objectMapper.writeValueAsString(all);
            redisTemplate.boundValueOps("user.findAll").set(userListJson);
            System.out.println("=======从数据库中获得user的数据======");
        }else{
            System.out.println("=======从redis缓存中获得user的数据======");
        }
        //4、将数据在控制台打印
        System.out.println(userListJson);
    }

springboot的两个重要的注解
@RunWith(SpringRunner.class)
//引导类的字节码对象
@SpringBootTest(classes = MySpringBootApplication.class)

### 回答1: 使用IDEA创建一个Spring Boot项目可以按照以下步骤进行: 1. 打开IDEA,选择 “Create New Project” 进入新建项目页面。 2. 在页面中选择 “Spring Initializr” 作为项目类型。 3. 选择项目名称、项目路径、项目类型等基本信息。 4. 在 “Dependencies” 页面选择需要用到的依赖,如Spring Boot Starter、Spring Web、Spring Data JPA等。 5. 点击 “Next” 完成项目创建。 接下来,您可以在IDEA中对Spring Boot项目进行开发、调试和测试等操作。 ### 回答2: Spring Boot 是基于 Spring 开发的一种应用程序开发框架,其中 Java 的依赖性配置被自动处理,并提供了一种命令行界面,可以用来创建、运行和测试应用程序。使用 IntelliJ IDEA 工具可以轻松地创建一个 Spring Boot 项目。 步骤如下: 第一步:创建一个新的项目。 首先,打开 IntelliJ IDEA,并点击 "Create New Project"。在弹出的对话框中,选择 Spring Initializr。这是一个可从各种项目模板中选择的启动器,这里选择了“Spring Web”。 第二步:选择项目的属性。 添加项目名称,然后指定项目的保存位置。选择 Maven 作为依赖管理方案,并选择适当的 Java 版本。此处选择的是 Java 11。 第三步:设置项目模板。 选择 Spring Boot 项目模板,然后选择 Web 模板。点击下一步按钮。 第四步:选择 Spring Boot 依赖项。 选择适合应用程序的 Spring Boot 依赖项。在这里,选择 Web、Thymeleaf 和 DevTools。这些依赖项提供了必要的功能,如 Web 应用程序的构建,视图和模板的管理,以及开发工具的支持。 第五步:创建项目。 创建项目后,你可以浏览项目文件结构并编辑必要的文件。此时,你应该能够看到与创建的 Spring Boot 项目有关的所有文件和依赖项。需要注重的是,应该始终注意项目结构和整体代码质量。 最后,你可以运行应用程序并启动 web 服务器,以便进行测试和调试。这是通过点击工具栏上的运行按钮和选择你的 Spring Boot 应用程序来实现的。至此,整个过程已经完成,你可以根据需要调整和修改项目。 ### 回答3: 使用IntelliJ IDEA创建一个Spring Boot项目非常简单,遵循下列步骤: 步骤 1:创建新项目 打开IntelliJ IDEA,点击File -> New -> Project,选择Spring Initializr。 在Spring Initializr页面中,你需要选择项目的不同选项,例如项目语言、Spring Boot版本、项目元数据等等。 完成项目的创建后,你将在IDEA中看到一个名为“pom.xml”的Maven项目文件。这将是我们构建新项目的核心。 步骤 2:添加依赖 Spring Boot集成了多种依赖,通常你可以很容易地在pom.xml文件中一次性添加它们。 例如,为添加Spring Web依赖,你可以像下面这样添加一行代码到pom.xml中: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 这将添加Spring的web依赖到你的项目中,让你可以开始编写Web应用程序。 步骤 3:编写代码 现在,开始编写你的Spring Boot应用程序了!例如,编写一个简单的Hello World应用程序,显示在网页上“Hello, World!”。 在你的IDEA工程中的src/main/java目录下,创建一个名称为“com.example.demo”的Java package,并在其下创建一个名为“Apllication.java”的Java类,代码如下: ```java package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @RequestMapping("/") @ResponseBody String home() { return "Hello, World!"; } } ``` 此时,在浏览器中访问http://localhost:8080,你将看到“Hello, World!”这个网页。 步骤 4:运行项目 最后,我们需要测试一下Spring Boot项目,为此,我们需要在IDEA中启动它。你可以通过按下 Control + Shift + R 打开或者右键点击主类选择“Run Application”来运行你的应用程序。 当你成功运行应用程序时,你的控制台日志将输出与启动有关的信息。 至此,你已经成功地使用IntelliJ IDEA创建了一个简单的Spring Boot项目,并创建了一个Hello World应用程序!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值