java学习基础-6

mvc概述

1.传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,缺点 JSP页面中需要使用<%%>符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低
2.是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写
3.Hibernate负责持久层 它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表,但是还是调用者依赖被调用者,它们之间形成了强耦合
4.Spring的作用就是完全解耦类之间的依赖关系,Spring负责中间的业务层
当前 SSM (Spring Spring MVC Mybatis)取代了 SSH (Spring structs hibernate)

spring

核心容器
spring-core,spring-beans,spring-context,spring-context-support和spring-expression组成
spring-core模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
spring-beans 模块提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦
context模块建立在由core和 beans 模块的基础上建立起来的,它以一种类似于JNDI注册的方式访问对象。Context模块继承自Bean模块,并且添加了国际化(比如,使用资源束)、事件传播、资源加载和透明地创建上下文(比如,通过Servelet容器)等功能
spring-expression模块提供了强大的表达式语言,用于在运行时查询和操作对象图

数据访问/集成层
包括 JDBC,ORM,OXM,JMS 和事务处理模块

Web 层
由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成

spring 容器

Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁

初始化 spring boot项目

1.https://start.spring.io/ 直接下载好
2.项目结构

// 这是Maven包装器(wrapper)脚本。借助这些脚本,即便你的机器上没有安装Maven,也可以构建项目
mvnw和mvnw.cmd:

// 这个文件起初是空的,但是它为我们提供了指定配置属性的地方
src/main/resources/application.properties

// 在这个文件夹下,你可以存放任意为浏览器提供服务的静态内容(图片、样式表、JavaScript等),该文件夹初始为空
src/main/resources/static

// 这个文件夹中存放用来渲染内容到浏览器的模板文件
src/main/resources/templates 

传统的Java Web应用都是打包成WAR文件,
JAR只是用来打包库和较为少见的桌面UI应用的。
打包为JAR文件是基于云思维做出的选择

pom.xml文件中,我们声明了对Web和Thymeleaf starter的依赖。
这两项依赖会传递引入大量其他的依赖,包括:
Spring的MVC框架;
嵌入式的Tomcat;
Thymeleaf和Thymeleaf布局方言

还引入了Spring Boot的自动配置库。当应用启动的时候,Spring Boot的自动配置将会探测到这些库,并自动完成如下功能:
在Spring应用上下文中配置bean以启用Spring MVC;
在Spring应用上下文中配置嵌入式的Tomcat服务器;
配置Thymeleaf视图解析器,以便于使用Thymeleaf模板渲染Spring MVC视

Spring Data 将应用程序的数据repository定义为简单的Java接口,在定义驱动存储和检索数据的方法时使用一种命名约定即可
Spring Security Spring Security解决了应用程序通用的安全性需求,包括身份验证、授权和API安全性
Spring Integration和Spring Batch Spring Integration解决了实时集成问题 Spring Batch解决的则是批处理集成的问题
Spring Cloud 微服务架构

3.启动文件


//@SpringBootApplication是一个组合注解,它组合了3个其他的注解。
//@SpringBootConfiguration:将该类声明为配置类。尽管这个类目前还没有太多的配置,但是后续我们可以按需添加基于Java的Spring框架配置。这个注解实际上是@Configuration注解的特殊形式。
//@EnableAutoConfiguration:启用Spring Boot的自动配置。我们随后会介绍自动配置的更多功能。就现在来说,我们只需要知道这个注解会告诉Spring Boot自动配置它认为我们会用到的组件。
//@ComponentScan:启用组件扫描。这样我们能够通过像@Component、@Controller、@Service这样的注解声明其他类,Spring会自动发现它们并将它们注册为Spring应用上下文中的组件

@SpringBootApplication
public class WehcatApplication {
    
    

  // main()方法会调用SpringApplication中静态的run()方法,
  // 后者会真正执行应用的引导过程,也就是创建Spring的应用上下文

	public static void main(String[] args) {
    
    
		SpringApplication.run(WehcatApplication.class, args);
		System.out.println("huahuavadis");
	}

}

处理Web请求

Spring自带了一个强大的Web框架,名为Spring MVC。Spring MVC的核心是控制器(controller)的理念。控制器是处理请求并以某种方式进行信息响应的类。在面向浏览器的应用中,控制器会填充可选的数据模型并将请求传递给一个视图,以便于生成返回给浏览器的HTML

// @Controller 的作用
// 让组件扫描将这个类识别为一个组件
// Spring的组件扫描功能会自动发现它,
// 并创建一个HomeController实例作为Spring应用上下文中的bean
// 其他注解也可以,包括@Component、@Service和@Repository,但是@Controller更语义化

// @GetMapping("/")的作用
// 处理路径是 / 的 HTTP GET请求 的 控制器方法


@Controller
public class HomeController {
    
    
  @GetMapping("/")
  public String home(){
    
    
    // 这个值将会被解析为视图的逻辑名 这里使用thymeleaf模板引擎 
    // 注意使用前在pom配置好 thymeleaf依赖
    // 模板名称是由逻辑视图名派生而来的,再加上"/templates/"前缀和".html"后缀
    // 最终得到"/templates/home.html"
    return "home";
  }

}

猜你喜欢

转载自blog.csdn.net/qq_29334605/article/details/106789230
今日推荐