Spring与SpringBoot入门

Spring入门

要使用Spring最起码需要引入两个依赖:

<!-- Spring Core(核心) -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-core</artifactId>
 <version>5.3.20</version>
 </dependency>
 <!-- Spring Context(容器) -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>5.3.20</version>
 </dependency>

Spring本质上就是一个大的"容器",他可以帮我们创建(实例化)好我们需要的对象,我们需要

使用这些对象的时候,只需要给这个容器要就可以了,即从容器中取出来使用即可

最基本的使用Spring的方式:

public class SpringMain {
 public static void main(String[] args) {
 // 1.加载配置类
AnnotationConfigApplicationContext ctx =  new 
AnnotationConfigApplicationContext(SpringConfig.class);
 // 2.从容器中取需要的对象
IHelloService helloService =  ctx.getBean(IHelloService.class);
 // 3.调用需要的对象方法
helloService.sayHello();
 }
 }

第一步干了啥?

//1. 加载配置类
AnnotationConfigApplicationContext ctx =  new 
AnnotationConfigApplicationContext(SpringConfig.class);

AnnotationConfigApplicationContext类是Spring自带的类,这个类的作用就是加载一个配置文件;

如果想知道加载的这个文件是不是一个配置类: SpringConfig怎么就知道它是一个配置类呢?

使用@Configuration注解:

//此注解就代表他是一个配置类
@Configuration
 public class SpringConfig {
 }

一般情况下,这个配置类,要想干点活,还得结合其他的注解一块参与:

比如以下场景: 需要再使用@ComponentScan注解参与其他逻辑

//此注解就代表这个类是一个配置类
@Configuration
//此注解用于扫描组件,把扫描到的组件,让Spring管理起来
@componentScan(basepack = "com.gengguolong.spring")
public class SpringConfig{
    
}

@ComponentScan此注解用于从指定的包下边进行所有的类扫描,它只扫描或搜索被@Component注解修饰的那些类,把那些类实例化好放到Spring容器里

第二步

IHelloService helloService =  ctx.getBean(IHelloService.class);

从容器中,直接获取我想要的对象

第三步

helloService.sayHello();
需要注意的点:

默认情况下,Spring帮我们实例化好的对象,是单例,即我们每次使用ctx.getBean(“xxx”),从容器中取对象的时候,取多次也是同一个对象.

需要记住的点:

loc控制反转

以前我们需要什么对象的时候,自己来new,但现在使用了Spring框架,我们不用自己new了,用的时候直接给Spring要就行了.

以前new对象是由我们自己控制的,现在new对象不归我们管了,让Spring接手了,对new对象的控制权交给框架(第三方),这种模式叫做控制反转,也叫loc(Inversion of Control)

2.SpringBoot入门

SpringBoot框架是基于Spring的思想开发出来的一套快速的开发Web的框架,它的底层仍然是Servlet那一套

  1. 内部默认集成好了Tomcat,无需关心Tomcat服务器的配置.
  2. 内部默认集成好了一大批组件,用的时候开启(在配置文件里配置一下)即可.

SpringBoot的目的就是简化开发

SpringBoot项目的创建过程

  1. 创建项目:
    在这里插入图片描述

  2. 选开发依赖的组件及框架
    在这里插入图片描述

  3. 在项目的入口类同级,建立常规的项目包:

在这里插入图片描述

  1. 开始编写Controller

Controller用于接收用户输入.调用Service处理业务逻辑,给用户输出为了表明它是一个控制器类,使用@Controller注解标记

@controller
public class Mycontroller{
    
}

为了能让这个Controller接受用户请求,需要使用@RequestMapping注解标记URL

@controller
@RequestMapping("/my")
public class MyController{
    public void hello(){
        
    }
}

为了能让这个方法运行再次指定下一级URL地址

@Controller
@RequestMapping("/my")
public class MyController{
    //请求地址是:/my/hello
    @RequestMapping("/hello")
    public void hello(){
        System.out.println("hello你好,我来了");
    }
}

接下来就可以运行了: http://localhost:8080/my/hello

以上只是在控制台输出内容,我想在游览器输出以上字符串怎么办? 使用@ResponseBody注解,代表方法的返回值作为响应体,响应给游览器,让游览器展示

@Controller
@RequestMapping("/my")
public class Myconntroller {
 // 请求地址是:/my/hello
 @RequestMapping("/hello")
 @ResponseBody
 public String hello(){
 // System.out.println("hello你好,我来了。");
 return "hello你好,我来了。";
 }
 }

nntroller {
// 请求地址是:/my/hello
@RequestMapping(“/hello”)
@ResponseBody
public String hello(){
// System.out.println(“hello你好,我来了。”);
return “hello你好,我来了。”;
}
}


  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值