spring框架

一:SSM框架整合之登陆

十年热恋 提交于 2020-03-01 19:26:49
1.先准备数据库 创建数据库 – db_gm, 创建表 – tb_user 2.新建项目 - maven archetypeCatalog = internal, 作用: 加快构建maven骨架 架包存放路径:C:\当前用户.m2\repository 3.导包 pom.xml < ? xml version = "1.0" encoding = "UTF-8" ? > < ! -- Licensed to the Apache Software Foundation ( ASF ) under one or more contributor license agreements . See the NOTICE file distributed with this work for additional information regarding copyright ownership . The ASF licenses this file to you under the Apache License , Version 2.0 ( the "License" ) ; you may not use this file except in compliance with the License . You may obtain a copy of the License at

Spring注解@Component、@Repository、@Service、@Controlle

耗尽温柔 提交于 2020-03-01 17:39:07
很长时间没做web项目都把以前学的那点框架知识忘光了,今天把以前做的一个项目翻出来看一下发现用·@Component标记一个组件,而网上有的用@Service标记组件,我晕就查了一下资料: Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、 @Service 和 @Controller。 在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。 虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。 所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。 @Service用于标注业务层组件 @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即DAO组件 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Service public class VentorServiceImpl implements iVentorService { }

SSM入门

风格不统一 提交于 2020-03-01 17:33:52
初学ssm框架(IDEA+Maven)项目练习 功能:登录,查询,修改,分页显示数据 资料链接(前端页面,配置文件): https://pan.baidu.com/s/1eam852Ba8yK8mgcUehAqQg 提取码: qeuh 工具: Idea MySQL 5.6 SQLYog JDK 1.8 Tomcat8 Maven 3.6.0 Editplus 项目界面 项目结构目录 创建数据库 -db_gm 创建表 -tb_user 导入项目成功后开始配置 编写pom.xml,导入相应的jar包 <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0.0 </ modelVersion > < groupId > com.zhongruan </ groupId > <

Shiro session和Spring session一样吗?

烂漫一生 提交于 2020-03-01 12:08:53
出自:https://yq.aliyun.com/articles/114167?t=t1 1. 疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢慢地产生了下面几个疑惑,本篇文章将会带着疑问慢慢地解析shiro源码,从而解开心里面的那点小纠纠。 (1) 在spring controller中,request有何不同呢 ? 于是,在controller中打印了request的类对象,发现request对象是org.apache.shiro.web.servlet.ShiroHttpServletRequest ,很明显,此时的 request 已经被shiro包装过了。 (2)众所周知,spring mvc整合shiro后,可以通过两种方式获取到session: 通过Spring mvc中controller的request获取session Session session = request.getSession(); 通过shiro获取session Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); 那么,问题来了, 两种方式获取的session是否相同呢 ?

SpringBoot学习笔记(一)

你说的曾经没有我的故事 提交于 2020-03-01 12:05:23
一、Spring发展史 Spring1.x时代 通过XML来配置bean,随着项目的不断扩大,需要将XML配置分配到不同的配置文件中,需要频繁的在java类和XML配置文件中进行切换。 Spring2.x时代 当时JDK1.5刚刚发布,随着JDK1.5带来的注解,2.x可以使用注解对bean进行声明和注入,大大减少了XML配置,简化了开发流程 一般项目都是XML配置和注解相结合,应用的基本配置,如:数据源、资源文件等,使用XML进行配置,业务开发中,如:service中注入bean,使用注解。 Spring3.x到Spring4.x 从Spring3.x开始提供了java配置方式,使用java配置方式更加直观、便捷,并且Spring4.x和SpringBoot都推荐使用java配置 二、Spring的java配置方式 java配置是Spring4.x推荐的配置方式,可以完全取代XML配置方式 @Configuration 和 @Bean Spring的java配置方式是通过以上两个注解来实现的: 1、@Configuration作用于类上,相当于该类为一个XML配置文件 2、@Bean作用于类中方法上,相当于在XML中配置了一个bean 三、SpringBoot简介 随着众多动态语言的流行(什么是动态语言。类似js这种不用编译直接运行的语言),因为众多的配置文件,底下的开发效率

微服务架构介绍

岁酱吖の 提交于 2020-03-01 12:01:31
技术架构演变 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 缺点:随着应用功能的增多,代码量越来越大,越来越难维护,那怎么解决代码一体化的问题? 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 缺点:垂直架构中相同逻辑代码需要不断的复制,不能复用。每个垂直模块都相当于一个独立的系统。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 缺点:服务越来越多,需要管理每个服务的地址,调用关系错综复杂,难以理清依赖关系,服务状态难以管理,无法根据服务情况动态管理。 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时

spring与mybatis三种整合方法

左心房为你撑大大i 提交于 2020-03-01 09:55:15
1.单独使用MyBatis 单独使用MyBatis,不结合其他框架,主要步骤是: 1.创建SqlSessionFactory对象 创建方法是通过SqlSessionFactoryBuilder这个类从mybatis的XML配置文件,或者porperties,或者URL获取相关数据库的配置信息。 2.从 sqlSessionFactory获取SqlSession。 3.使用 SqlSession提供的API,对数据库进行增删改查,以及事务管理。 1 2 3 4 5 6 7 String resource = "org/mybatis/example/mybatis-config.xml" ; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); session.insert( "BlogMapper.selectBlog" , 101 ); session.commit(); sesssion.close(); 2

Spring-理解IOC容器(DI)

妖精的绣舞 提交于 2020-03-01 08:20:03
Spring-理解IOC容器 序言 IoC粗理解 IoC细理解 Spring中IoC的应用 IoC容器 容器的两种表现形式 BeanFactory的IoC实现过程: IoC容器初始化过程 BeanDefinition的定位 BeanDefinition的载入 IoC容器的依赖注入 IoC小结 参考文章: 序言 IoC(Inversion of Control) 控制反转,两种实现: 依赖查找(DL) 依赖注入(DI) IoC包括 依赖查找(DL) 和 依赖注入(DI) ;只不过DL因为有 侵入性 (它需要用户自己去是使用 API 进行查找资源和组装对象),已经被抛弃。所以现在提到IoC,更多的想到的就是依赖注入(DI)了。 依赖注入(DI)包括Set注入和构造器注入!其实还有一个通过实现接口的方式实现依赖注入,不过不常用,就不说了。 注意:Java 使用 DI 方式实现 IoC 的不止 Spring,包括 Google 的 Guice,还有一个冷门的 PicoContainer(极度轻量,但只提供 IoC)。 如图所示: 但其实 IOC 和DI 相当于一回事,只不过是看待问题的角度不同而已: IOC: Spring 反向控制应用程序需要的资源。 DI: 应用程序依赖Spring为其提供资源。 IOC 是站在Spring 的角度,而DI 是站在应用程序的角度。 如下图所示:

JPA、Hibernate、Spring data jpa之间的关系

我的未来我决定 提交于 2020-03-01 07:49:27
什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; 如:@Entity、@Table、@Column、@Transient等注解。 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。 如:entityManager.merge(T t); 3)JPQL查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。 如:from Student s where s.name = ? 但是: JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。 也就是说: JPA是一套ORM规范,Hibernate实现了JPA规范!如图: 什么是spring data jpa? spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下

20200229——Spring复习 框架概述以及spring中基于xml的配置 一

百般思念 提交于 2020-03-01 02:59:39
spring是分层的javaSE/EE应用,full-stack轻量级开源框架,以IOC控制反转和AOP面向切面编程 spring的优势 方便解耦,简化开发 通过IOC容器,可以将对象的关系交给Spring进行控制管理,避免硬编码所造成的过度程序耦合,用户也不必再为单例模式,属性文件解析这些很底层的代码进行编写 我觉得就是依赖注入和依赖查找 削减耦合,并不是完全消除 AOP编程支持 程序间的耦合 比如jdbc程序,如果我们不引入mysql的驱动包,程序就运行不了 耦合:程序间的依赖关系 包括两种,类之间的依赖关系 方法间的依赖关系 解耦:降低程序间的依赖关系 实际开发中 编译器不依赖,运行时才依赖 解耦的思路 第一步,使用反射来创建对象,而避免使用关键字new 第二步,通过配置文件来获取创建的对象全限定类名 上升到java web 在没有使用spring的时候,表现层调用业务层,需要创建业务层对象的实例 但是这样就具有了耦合行 javabean bean 在计算机语言中,有可重用的组件 spring就相当于相当于一个bean工厂 创建service和dao对象 第一个 需要配置文件来配置我们service和dao 配置的内容,全限定类名与唯一标识 key,value 第二个 通过读取配置文件中配置内容,创建反射对象 自定义Spring 创建一个BeanFactory 有一个属性