Reading Together项目(一)

目录

一、技术架构及开发环境

二、Spring


服务端的性能和安全

一、技术架构及开发环境

技术架构

Spring Boot

Spring、Spring MVC、MyBatis (ssm框架)

Redis(No SQL数据库,提高服务器处理能力)、Kafka(消息队列)、Elasticsearch(搜索引擎)

Spring Security(提高性能安全)、Spring Actuator(系统运行状况)

开发环境

构建工具:Apeache Maven

IDE:idea

数据库:MySQL,Redis

应用服务器:Apache Tomcat

版本控制:Git

SpringBoot核心作用:起步依赖、自动配置、端点监控

二、Spring

1.Spring全家桶

Spring Framework

Spring Boot

Spring Cloud(项目不涉及)

Spring Cloud Data Flow(也不涉及)

2.Spring Framework

Spring Core

--IOC(面向对象)、AOP(面向切面)(管理对象,Spring的对象一般叫做bean)

Spring Data Access

--Transaction(管理事物)、Spring Mybatis(数据库)

Web Servlet

--Spring MVC

Integration

--Email、Scheduling、AMQP、Security

3.Spring IoC

·Inversion of Control

        控制反转,一种面向对象的设计思想,减少bean之间的耦合

·Dependency Injection

        依赖注入,是IoC思想的实现方式

·IoC Container

        IoC容器,是实现依赖注入的关键,本质上是一个工厂

4.Spring学习

容器是自动创建的

1.容器管理bean:

①创建bean:

在bean前声明@Primary 可以让容器优先选

在@Respository(“XXX”)给他命名作唯一化

②初始化和销毁bean

以AlphaService为例:

        添加注解 @PostConstruct 表示方法会在构造器后调用 然后写初始化方法

        添加注解@PreDestroy 表示在销毁对象之前会调用这个方法,可以在方法里释放资源

        被容器管理bean是单例的,只被实例化一次,getbean多次只返回同一个hashcode值

        通过增加注解 @Scope(“prototype”)每次getbean都实例化一个

③装配第三方的bean

        自己写一个配置类来装配第三方bean,新建包名为config,把配置类都写在里面,配置类的注解为@Configuration。

        在方法前加注解@Bean,方法名就是bean的名字。

用于让bean被扫描的注解  Controller(处理请求)、Repository(数据库访问的注解)、Component(什么地方都能用)、Service(业务组件)、Configuration(声明配置类)

④以上都是主动获取bean的方式,下面介绍依赖注入

添加注解@Autowired

//注解加载成员变量之前,也可以写在set,构造器之前
@Autowired
//表示想要哪个bean,自定义的名称默认的都可以
@Qualifier(“XXX”)
//表示要求Spring容器将AlphaDao注入给属性alphaDao
private AlphaDao alphaDao;

5.由controller处理浏览器请求,调用service组件处理当前业务,业务组件调用dao访问数据库。

service内注入dao内的接口,创建方法返回所需的数据库内的数据

在controller中将service注入,然后创建方法用来处理service返回的数据

每个dao接口要有一个impl用于实现

二、Spring MVC入门

1.http协议(基于TCP的超文本传输协议)

用于传输Html等内容的应用层协议,规定了浏览器和服务器之间如何通信以及通信时的数据格式

2.Spring MVC 

三层架构:表现层,业务层,数据层

MVC:Model:模型层;View:视图层;Controller:视图层  (MVC主要解决表现层的东西)

 核心组件:前端控制器DispatchServlet 理解怎么调度MVC三层代码

 

3.模板引擎Thymeleaf: 生成动态HTML的模板引擎

 常用语法:标准表达式、判断与循环、模板的布局。

在applications.properties里把Thymeleaf的缓存关掉 

4.Spring MVC

视图层:先写controller;再写模板引擎的template

5.HttpServletRequst和HttpServletResponse

HttpServletRequst 获取请求数据

 public void http(HttpServletRequest request, HttpServletResponse response) {
        // 获取请求的数据
        System.out.println(request.getMethod());
        System.out.println(request.getServletPath());
        Enumeration<String> enumeration = request.getHeaderNames();
        //是以key-value形式的数据
        while (enumeration.hasMoreElements()) {
            String name = enumeration.nextElement();
            String value = request.getHeader(name);
            System.out.println(name + ": " + value);
        }
        System.out.println(request.getParameter("code"));


        // 向浏览器返回响应数据
        //设置返回数据的类型
        response.setContentType("text/html;charset=utf-8");
        //利用输出流向网页返回相应数据
        try (
                //java7中 在try括号内写writer,最后会自动通过finally将 writer关闭,前提是这个类要有close方法
                PrintWriter writer = response.getWriter();
        ) {
            writer.write("<h1>牛客网</h1>");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值