目录
一、软件安装
二、软件的简单了解
三、基础知识应用
1、四个常用注释
2、尝试新建类
3、控制反转(IOC容器)
4、返回数据给浏览器
5、浏览器传回数据给服务器
易错点
一、软件安装
需要安装的软件是idea专业版,刚使用的时候可以使用30天,后面可以找方法去破解。
安装的步骤很多博主都讲过,这里就不再重复了。
IntelliJ IDEA 下载安装及配置使用超详细图文教程_idea下载安装配置教程-CSDN博客
二、软件的简单了解
在新建项目的时候,首先需要找到setting修改settings.xml这个文件的,默认路径在C盘,这里老师发了个文件,修改之后我放到了D:\moven_repository这个路径下,文件在上方显示。
该文件需要修改的内容如下:
然后修改setting中的:
修改完成之后,
三、基础知识应用
1、四个常用注释
@RestController //用在类上面的,要求类在浏览器访问就用这个@RequestMapping //在后面添加一个字符串,用作路径的前缀,从而使得路径不易重复@Autowired //对象类型,自动装配@Value //简单类型赋值
以下是对这四个注解(注释)的简单解释(来自文心一言):
@RestController
: 这是一个特殊的@Controller
注解,用于表明该类是一个RESTful Web服务的控制器。它告诉Spring框架,此类中的方法返回的是领域对象,而不是视图,通常这些对象会被自动转换为JSON或XML格式的响应。@RequestMapping
: 用于映射web请求(如HTTP GET, POST等)到特定的处理器函数、方法或类。你可以使用它来定义URL模式、HTTP方法、请求参数等。@Autowired
: 这是Spring框架提供的依赖注入注解。它告诉Spring自动装配bean的依赖关系。当Spring发现@Autowired
注解时,它会在应用上下文中查找一个匹配的bean,并将其注入到被注解的字段、构造函数或方法中。@Value
: 用于注入值(如配置文件中的属性)到字段、方法参数或方法返回值。你可以使用它来读取如.properties
或.yml
等配置文件中的属性值,并将其注入到Spring管理的bean中。
注意:@RequestMapping
通常与@GetMapping
、@PostMapping
等一起使用,或者直接放在方法上来定义具体的请求映射。而在类上使用@RequestMapping
时,它通常用于为该类下的所有方法提供一个共同的路径前缀。
2、尝试新建类
新建类的时候,在命名时写test.demo1表示新建一个包test,然后在这个包下新建一个.java文件:
使用这种方法就不用专门去新建包,然后再写文件了。
新建完成之后,就可以在这个里面进行Java代码的编写了。
首先使用两个注释进行一个最简单的代码编写,编写之后再浏览器显示返回值:
@RestController//有该注解,就可以让下面的类在浏览器访问
public class demo1 {@RequestMapping("/helloYa") //这里指定路径,自己定义就好public String hello(){return "hello Ya";//会将这个返回到浏览器中}
}
然后在地址栏中输入
localhost:8080/helloYa //默认端口8080,这里可能会有端口冲突,这里就需要解决一下端口冲突的问题
端口冲突的解决查看这篇文章(侵权联系删除):
WIN10 关闭占用某一端口号的进程_win10如何关闭指定端口的程序-CSDN博客
最终成功解决冲突之后,显示如下:
上面是直接在新建的类中进行操作,也可以引用其他的类,比如在这里我们新建一个Student类,并添加相应的方法和属性:
package com.example.demo1.test;public class student {private int id;private String name;private int age;public String test(){System.out.println("加油!");return "";}
// public int getId() {
// return id;
// }public void setId(int id) {this.id = id;}public void setName(String name){this.name=name;}public void setage(int age){this.age=age;}}
在demo1中使用@Autowired进行对象类型的自动匹配时,必须要先在所要引用的类中使用
@Component注解。
@Component //泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注,标识为一个Bean。
注解之后,就进行@Autowired和@Value两个注解的使用
package com.example.demo1.test;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class demo1 {@Autowiredprivate student student;@Value("QSJ")private String name;@RequestMapping("/helloYa") //这里指定路径public String hello(){System.out.println(name);student.test();return "hello Ya";//会将这个返回到浏览器中}
}
在服务器的控制台显示:
在浏览器中显示:
上面简单使用了一下@Autowired和@Value两个注解,下面学习如何将服务器中写的数据传给浏览器。
3、控制反转(IOC容器)
在之前使用student类的时候需要自己new一个相应的对象,但是Spring会自动new一个对象,然后放到它的容器中,使用的时候直接用就可以了。
4、返回数据给浏览器
引用student对象,将该对象的某个值或者多个值从浏览器输出。
(1)显示某个值
@RequestMapping("/get1")public student get1(){student stu = new student();stu.setId(1997);stu.setName("QSJ");stu.setage(24);return stu;}
上面的这串代码没有错,错误的是student类的错误,需要添加上所有属性的get函数:
package com.example.demo1.test;import org.springframework.stereotype.Component;@Component
public class student {private int id;private String name;private int age;public String test(){System.out.println("加油!");return "";}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name){this.name=name;}public int getAge() {return age;}public void setAge(int age){this.age=age;}}
最终显示结果如下:
(2)显示多个值
使用List容器和ArrayList容器:
@RequestMapping("getAll1")public List<student> getAll(){student stu1 = new student();stu1.setId(1997);stu1.setName("QSJ1");stu1.setAge(24);student stu2 = new student();stu2.setId(1998);stu2.setName("QSJ2");stu2.setAge(25);student stu3 = new student();stu3.setId(1999);stu3.setName("QSJ3");stu3.setAge(26);List<student> list1 = new ArrayList<student>();list1.add(stu1);list1.add(stu2);list1.add(stu3);return list1;}
最终显示结果:
5、浏览器传回数据给服务器
忘记咋传的了。。。。
出错:
易错点
- 注解的首字母都是大写的,写了之后回车可以自动引用相应的包,若拼写错误或者没有引用包会出错;
- 虽然在定义类的时候,get相关的函数不会显示被应用,但是在set相关的函数中使用了this,所以get函数还是需要写的,否则在传给浏览器的时候不会显示任何内容;
- 再修改代码之后,需要重新运行代码才会在正确的情况下显示相应的内容;