Springboot入门

Spring主要解决什么(了解)


Spring 依赖注入 控制反转(解决实例化问题)

Ioc(日志)

jdbc(xml连接数据库)

mvc(spring封装servlet)

springBoot(入门)


一、什么是SpringBoot

SpringBoot是用来简化Spring应用的搭建到开发的过程,开箱即用,springboot只要很少的spring配置文件

二、入门helloword
1.创建maven项目
2.在pom中引入springboot配置文件
<!-- Spring Boot 启动父依赖 -->
​
    <parent>
           <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.3.RELEASE</version>
    </parent>
    <dependencies>
        <!-- Spring Boot web依赖 -->
        <dependency><groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
3.编写启动类
/**
* @author 小玉
* @create 2023-03-21 11:06
* @目的:
* spring Boot启动类
*/
​
@SpringBootApplication
publicclassSPBApplication {
    publicstaticvoidmain(String[] args) {
        SpringApplication.run(SPBApplication.class,args);
    }
​
}
4.在contorller包中编写helloworld.class文件
/**
* @author 小玉
* @create 2023-03-21 11:08
* @目的:
* SpringBoot hello world案例
*/
​
//相当于servlet中上面的@webservlet
@RestController
publicclassHelloWorldContorller {
//    相当于servlet中的doget和dopost中的request请求 "/":相当于之前的路径
    @RequestMapping("/")
    publicStringsayHello(){
        return"helloworld";
    }
​
}
三、从配置文件中获取值

可以在配置文件中修改端口号,也可以在配置文件中定义值

在代码中获取值

相当于java用io流从配置文件中取出值读写进内存里 然后再用get方法获取到了这个值并用set方法相当于给属性赋值这种方法封装到@value中

四、把servlet中的代码转换为springboot中的代码
案例

需求:写一个注册页面然后在浏览器中把注册信息存储到数据库中

注册rego.htm;

表单用post方式提交到RegoHtml中

<!DOCTYPE html>
<htmllang="en">
<head>
    <metacharset="UTF-8">
    <title>Title</title>
</head>
<body>
    
        <formaction="RegoHtml"method="post">
            姓名:<inputtype="text"name="name"><br/>
            密码:<inputtype="text"name="password"><br/>
            <inputtype="submit"value="注册">
        </form>
​
</body>
</html>

静态页面应当存放在resources中templates

然而我们需要在浏览器中访问这个静态页面

第一步:需要在配置文件中配置静态资源地址
spring.resources.staticlocations=classpath:/templates/
# 如果将html页面直接放在templates目录下,可能省略下面这行配置
spring.mvc.view.prefix=views
spring.mvc.view.suffix=.html
第二步:编写访问这个静态页面的类这个类继承WebMvcConfigurer这个类并重写addViewControllers方法

引用注解@Configuration

/**
* @author 小玉
* @create 2023-03-21 15:48
* @目的:
*先继承WebMvcConfigurer 然后重写addViewControllers方法
* 访问html静态页面
*/
​
@Configuration
publicclassRegoimplementsWebMvcConfigurer {
    @Override
    publicvoidaddFormatters(FormatterRegistryformatterRegistry) {
​
    }
​
    @Override
    publicvoidconfigureMessageConverters(List<HttpMessageConverter<?>>list) {
​
    }
​
    @Override
    publicvoidextendMessageConverters(List<HttpMessageConverter<?>>list) {
​
    }
​
    @Override
    publicValidatorgetValidator() {
        returnnull;
    }
​
    @Override
    publicvoidconfigureContentNegotiation(ContentNegotiationConfigurercontentNegotiationConfigurer) {
​
    }
​
    @Override
    publicvoidconfigureAsyncSupport(AsyncSupportConfigurerasyncSupportConfigurer) {
​
    }
​
    @Override
    publicvoidconfigurePathMatch(PathMatchConfigurerpathMatchConfigurer) {
​
    }
​
    @Override
    publicvoidaddArgumentResolvers(List<HandlerMethodArgumentResolver>list) {
​
    }
​
    @Override
    publicvoidaddReturnValueHandlers(List<HandlerMethodReturnValueHandler>list) {
​
    }
​
    @Override
    publicvoidconfigureHandlerExceptionResolvers(List<HandlerExceptionResolver>list) {
​
    }
​
    @Override
    publicvoidaddInterceptors(InterceptorRegistryinterceptorRegistry) {
​
    }
​
    @Override
    publicMessageCodesResolvergetMessageCodesResolver() {
        returnnull;
    }
​
    @Override
    publicvoidaddViewControllers(ViewControllerRegistryregistry) {
//        spring.mvc.view.prefix + /index + spring.mvc.view.suffix 构成完整的请求地址
//        访问项目根目录即是访问 /views/index.html页面
        registry.addViewController("/Rego").setViewName("/rego");

    }
​
    @Override
    publicvoidconfigureViewResolvers(ViewResolverRegistryviewResolverRegistry) {
​
    }
​
    @Override
    publicvoidaddResourceHandlers(ResourceHandlerRegistryresourceHandlerRegistry) {
​
    }
​
    @Override
    publicvoidconfigureDefaultServletHandling(DefaultServletHandlerConfigurerdefaultServletHandlerConfigurer) {
​
    }
​
    @Override
    publicvoidaddCorsMappings(CorsRegistrycorsRegistry) {
​
    }
​
}

// spring.mvc.view.prefix + /index + spring.mvc.view.suffix 构成完整的请求地址 //

/*

  • 该方法是Spring MVC中的一种配置方式,用于实现无业务逻辑的页面跳转。

  • 其作用是将一个请求直接映射为视图,不需要编写控制器来实现。

  • 在继承WebMvcConfigurerAdapter的配置类中,

  • 通过重写addViewControllers方法并传入URL路径,即可将该路径与一个ViewController绑定。

  • ViewControllerRegistry是WebMvcConfigurerAdapter的子类,

  • 它实现了WebMvcConfigurer接口。addViewController()方法

  • 返回一个ViewControllerRegistration类型的对象,可以通过该对象进一步配置视图的名称、状态码等信息。 *方法可以将根路径"/"与名为"/rego"的视图绑定。

  • 这样,当用户访问根路径"/"时,

  • 就会直接跳转到名为"/rego"的页面,而不需要编写控制器来实现页面跳转。

  • */

第三步:编写表单跳转页面
/**
 * @author 小玉
 * @create 2023-03-21 15:07
 * @目的:
 * 用来接收表单跳转
 * 
 */
 //相当与servlet中的@webservlet
@RestController
public class RegoContorller {
    //相当于servlet中的dopost和doget请求
    //表单跳转到这里
    @RequestMapping("/RegoHtml")
    public int add(String name,String password){
        
        //name,password用来接收表单里的数据
        UserDao userDao = new UserDaoImpl();
        //调用添加方法
        int insert = userDao.insert(name, password);
        //如果添加成功返回1,添加失败返回0
        return insert;
    }
​
}
​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值