- 博客(56)
- 问答 (1)
- 收藏
- 关注
原创 5、controlle配置总结
控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种5.1、实现Controller接口Controller是一个接口,在org.springframework.web.servlet.mvc包下,接口中只有一个方法;//实现该接口的类获得控制器功能public interface Controller .
2021-08-10 21:33:08
289
原创 13、声明式事务
1、回顾事务把一组业务当成一个业务来做,要么都成功,要么都失败事务在项目开发中,十分重要,设计到数据的一致性问题,不能马虎!确保完整性和一致性事务的ACID原则:原子性一致性隔离性多个事务可能操作同一个资源,防止数据损坏持久性事务一旦提交,无论系统发生什么问题,结果都不会再被影响,被持久化的写到存储器中2、spring中的事务管理声明式事务:AOP(横切进去的)编程式事务:需要在代码中,进行事务的管理接口public interface UserMapp
2021-08-08 21:57:51
138
原创 12、整合mybatis
步骤:导入相关jar包junitmybatismysqlspringaopmybatis-spring【new】编写配置文件测试12.1、回忆mybatis编写实体类public class User { private int id; private String name; private String password; public User() { } public User(int id, String n
2021-08-08 21:57:01
103
原创 11、AOP
11.1什么是AOPAOP为Aspect Oriented Programming的缩写,是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑个部分之间的耦合度降低,提高程序的可重复用性,同时提高了开发的效率。11.2、Aop在spring中的作用提供声明式事务:允许用户自定义切面横切关注点:跨越
2021-08-08 21:56:13
132
转载 10、代理模式
为什么学习代理模式?因为这既是springAop的底层【springAOP和springMVC】代理模式的分类:静态代理动态代理10.1、静态代理角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人代码步骤:接口package com.xiao.demo01;//租房的接口public interface Rent { public void rent()
2021-08-08 21:55:07
81
原创 9、使用java的方式配置spring
我们现在要完全不使用spring的xml配置了,全权交给java来做!javaConfig是spring的一个子项目,在spring4之后。他成为了一个核心功能配置文件package com.xiao.config;import com.xiao.pojo.User;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@C
2021-08-07 21:08:08
55
转载 8、使用注解开发
在spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入context约束,增加注解的支持<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http:/
2021-08-07 21:07:30
111
转载 7、Bean的自动装配
自动装配时spring满足bean依赖一种方式!spring会在上下文中自动寻找,并自动给bean装配属性在spring中有三种装配的方式在xml中显示的配置在java中显示配置隐式的自动装配bean【重要】7.1、测试环境搭配:一个人有两个宠物!7.2、ByName自动装配<!--ByName:会自动在容器上下文中查找,和自己对象set方法后面的只对应的beanid--><bean id="people" class="com.xiao.pojo.People.
2021-08-07 21:06:43
77
转载 2、IOC理念推导
UserDao接口UserDaoImpl实现类UserService业务接口UserServiceimpl业务实现类在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求取修改源代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!我们使用一个set接口实现 private UserDao userDao;//利用set进行动态实现值的注入 public void setUserDao(UserDao userDao) { this.userDao .
2021-08-07 21:02:46
87
转载 3、hellospring
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http:/
2021-08-05 23:12:01
105
原创 4、IOC创建对象的方式
使用无参构造创建的对象,默认假设我们要使用有参构造创建对象下标赋值<!-- 下标赋值--> <bean id="user" class="com.xiao.pojo.User"> <constructor-arg index="0" value="彩虹java"/> </bean>类型<!-- 第二种方式,通过类型创建,不建议使用--> <bean id="use..
2021-08-05 23:11:30
78
原创 5、spring配置
5.1、别名别名:如果添加了别名,我们也可以使用别名来获取到这个对象<alias name="user" alias="user111"/>5.2、bean的配置<!-- id:bean 的唯一标识符,也就是相当于我们学的对象名class:bean对象所对应的全限定名:包含 + 类型name: 也是别名,而且name更高级,可以同时取多个别名--><bean id="user1" class="com.xiao.pojo.User1" name="use
2021-08-05 23:10:09
75
原创 6、DI依赖注入
6.1、构造器注入我们要使用有参构造创建对象下标赋值<!-- 下标赋值--> <bean id="user" class="com.xiao.pojo.User"> <constructor-arg index="0" value="彩虹java"/> </bean>类型<!-- 第二种方式,通过类型创建,不建议使用--> <bean id="user" class="c
2021-08-05 23:09:29
82
转载 1、Spring
1.1、简介Spring:春天----->给软件行业带来了春天2020,首次推出了 Spring框架的雏形:interface21框架!2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。Rod Johnsonspring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!SSH:Struct2 + spring + Hibernate!SSM:Spring + Spring + My
2021-08-04 21:00:54
88
原创 11、动态sql
什么是动态sql?:动态sql就是根据不同的条件生成不同的sql语句拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。ifcho
2021-07-30 21:47:59
74
原创 10、一多对
比如:一个老师拥有多个学生!对于老师而言,就是一对多的关系环境搭建,和刚才一样实体类:public class Student { private int id; private String name; private int tid;public class Teacher { private int id; private String name; //一个老师拥有多个学生 private List<Student>
2021-07-28 21:58:38
69
原创 9、多对一
多对一[外链多个学生,对应一个老师对于学生这边而言,关联…多个学生关联一个老师【多对一】对于老师而言,集合… 一个老师有很多学生【一对多】SQL:CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(id, NAME)
2021-07-28 20:32:25
71
原创 8、使用注解开发
8.1、注解开发注解在接口上实现@Select("select * from user")List<User> getUsers();需要在核心配置文件中绑定接口<mappers><mapper class="com.xiao.dao.UserMapper"/></mappers>测试public class UserMapperTest { @Test public void test(){
2021-07-28 15:52:26
77
原创 7、分页.
为什么要分页?减少数据的处理量使用Limit分页语法:select * from user startIndex,pageSize;使用Mybatis实现分页,核心sql接口 List<User> getUserByLimit(Map<String,Integer> map);Mapper.xml<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
2021-07-26 21:06:05
215
原创 6、日志.
1、日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手曾经:sout,debug现在:日志工厂logImpl指定 MyBatis 所用日志的具体实现,未指定时将自动查找。SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING未设置SLF4JLOG4JLOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTD
2021-07-26 20:32:10
108
原创 5、解决属性名和字段名不一致的问题
1、问题数据库中的字段新建一个项目,拷贝之前的,测试实体类字段不一致的情况public class User { private int id; private String name; private String password;}测试出现问题User{id=1, name='张三', password='null'}// select * from mybatis.user where id = #{id}// select id,na
2021-07-26 19:26:45
307
原创 4、配置解析
1、核心配置文件mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager
2021-07-24 16:13:09
62
原创 3、CRUD
1、namespacenamespace中的包含要和Dao/mapper接口的包含名一致2、select选择/查询语句:id就是对应的namespace中的方法名;resultType:sql语句执行的返回值!parameterType:参数类型;3、insert4、update5、delete1、编写接口package com.xiao.dao;import com.xiao.pojo.User;import java.util.List;public interfa
2021-07-23 18:07:32
56
原创 2、第一个Mybatis程序
思路:搭建环境–>导入Mybatis–>编写代码–>测试2.1、搭建环境搭建数据库新建一个项目新建一个普通的maven项目删除src目录导入maven依赖<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>
2021-07-22 23:23:20
53
原创 1、Mybatis简介
SSM框架:配置文件,最好的方法:看官网文档1.1、什么是MybaitsMyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis.2010年这个项
2021-07-21 21:52:35
213
原创 14、JDBC
什么是jdbc:java连接数据库需要jar包的支持:java.sqljavax.sqlmysql-connecter-java…实现环境搭建:package com.xiao.test;import java.sql.*;public class Testjdbc { public static void main(String[] args) throws ClassNotFoundException, SQLException { //配置信息
2021-07-10 16:48:46
72
原创 12、监听器
实现一个监听器的接口:(有n种)1、编写一个监听器 实现监听器的接口:public class OnlineCountListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { ServletContext context = se.getSession().getServletContext(); Integer onlineCoun
2021-07-09 23:06:00
58
原创 11、Filter
Filter:过滤器,用来过滤网站的数据处理中文乱码登陆验证Filter开发步骤:导包public class fliter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("CharacterEncodingFilter初始化"); } @Ov
2021-07-09 23:04:36
60
原创 10、MVC三层架构
什么是mvc:model view controller 模型、视图、控制器10.1、早些年用户直接访问控制层,控制层就可以直接操作数据库servlet--CRUD-->数据库弊端:程序十分臃肿,不利于维护 servlet的代码中,处理请求、响应、视图跳转,处理jdbc、处理业务代码、处理逻辑代码。架构:没有射门时加一层解决不了的!10.2、MVC三层架构Model:业务处理:业务逻辑(service)数据持久层:CRUD (Dao)
2021-07-08 21:31:45
137
2
原创 9、javaBean
实体类javabean有特定的写法:必须要有一个无参构造属性必须私有化必须有对应的get/set方法一般用来和数据库的字段做映射 OEMOEM:对象关系映射表–>类字段–>类的属性行记录—>对象People表:idnameageaddress1彩虹1号23地球2彩虹2号12地球3彩虹3号3地球class People{ private int id; private String name
2021-07-08 21:15:48
54
原创 8、JSP
8.1、什么是jspjava servlet Pages :java服务器页面,也和servlet一样,用于动态web技术最大的特点:写jsp就像在写html区别:html只给用户提供静态的数据jsp页面中可以嵌入java代码,为用户提供动态数据8.2、jsp原理jsp到底怎么执行的?代码层面没有问题,还是html代码。服务器内部工作tomcat中有一个work目录;idea中使用tomcat的会在idea的tomcat中生产一个work目录在idea的tomca
2021-07-07 23:41:45
117
原创 7、Cookie、Session
文章目录7.1、会话7.2、保存会话的两种技术7.3、Cookie7.4、Session(重点)7.1、会话会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话有状态的会话:你能怎么证明你是xxx学校的学生?你 xxx学校发票 xxx学校给你发票学校登记 xxx学校标记你来过了一个网站,怎么证明你来过?客户端 服务端服务端给客
2021-07-06 00:37:12
56
原创 6、Servlet
6.1、什么是servletservlet就是sun公司开发动态web的一门技术sun在这些API中提供一个接口叫:Servlet,如果你想开发一个servlet程序,只需要完成两个小步骤编写一个类实现Servlet接口把开发好的java类部署到web服务器中把实现了servlet接口的java程序叫做servlet6.2、hello servletservlet接口sun公司有两个默认的实现类:httpServlet1、构建一个普通maven项目,删掉里面的src目录,以后我们的
2021-07-05 22:17:22
69
原创 4、http
4.1、什么是httphttp(超文本传输协议)是一个简单的请求,响应协议,它通常运行在tcp之上文本:http,字符串超文本:图片、音乐、视频、定位、地图…默认端口:80https:安全的默认端口4434.2、两个时代http1.0http/1.0:客户端与web服务器连接,只能获得一个web资源,断开连接http2.0http/1.1:客户端与web服务器连接,可以获得多个web资源4.3、http请求客户端–发请求(requset)–服务器请求
2021-07-02 22:50:06
130
原创 2、web服务器
2.1、技术概念ASP:微软:国内最早流行的就是ASP在html中嵌入了VB的脚本,ASP+COM;在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱维护成本高c#JSP/servlet:B/S:浏览器和服务器C/S: 客户端和服务器sun公司主推的B/S架构基于java语言的(所有的大公司或者一些开源的组建都是用java写)可以承载三高问题带来的影响:高并发,高可用,高性能语法像ASPPHP:php开发速度很快,功能很强大,跨平台,代码很简单无法承载
2021-07-02 22:17:57
60
原创 1、javaweb基本概念
1.1、前言javaweb可以拆开,一个叫java,一个叫webweb开发:web:网页(开发)的意思,表示在互联网上拿到一些资源web分为两种:静态web和动态web静态webhtml,css(可以直接拿到)提供给所有人的数据始终不会发生变化!动态web淘宝等,几乎是所有的网站都是动态web。提供给所有看的数据始终会发生变化,每个人在不同的时间。不同的地点看到的信息个不相同。技术栈:Servlet/JSP、ASP、PHP拓展:**ASP:**即Acti
2021-07-02 22:07:31
162
原创 反射与注释
文章目录注解1、内置注解2、元注解3、自定义注解反射机制1、Java Reflection2、反射机制提供的功能3、Class类4、类型的class对象5、类内存分析6、分析类初始化7、类加载器8、获取类的运行时结构9、动态创建对象执行方法10、反射操作范型11、反射操作注解注解java.AnnotationAnnotation 是从JDK1.5引入的新技术Annotation作用:不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别)。可以被其他程序(比如:编译器)
2021-06-27 14:32:40
86
原创 JUC编程
文章目录JUC编程1、线程和进程2、lock锁(重点)3、生产者和消费者问题4、8锁现象5、集合类不安全6、Callable(简单)7、常用的辅助类7.1、CountDownLatch7.1、CyclicBarrier7.3、Semaphore8、读写锁9、阻塞队列**SynchronousQueue同步队列**10、线程池(重点)池化技术11、四大函数式接口(重点、简单、必须掌握)12、Stream流式计算13、ForkJoin14、异步回调15、JMM16、Volatile17、彻底玩转单例模式18、深
2021-06-26 16:39:02
352
原创 JVM探究
JVM探究请你谈谈你对jvm的理解?java–>class–>jvm java8虚拟机和之前的变化更新什么事OOM,什么事栈溢出StackOverFlowError?怎么分析jvm的常用调优参数有哪些?内存快找如何抓取,怎么分析Dump文件?谈谈jvm中类加载器的认识?1、jvm的位置2、jvm的体系结构3、类加载器 作用:加载器class文件-虚拟机自带的加载器启动类(根)加载器扩展类加载器应用程序加载器4、双亲委派机制类加载器收到类加载的请
2021-06-17 10:55:51
47
原创 web基础
javawebjava web1、基本概念1.1、前言web开发:web,网页的意思静态webhtml,css提供给所有人的数据始终不会发生变化动态web淘宝,几乎是所有的网站。提供给所有看的数据始终会发生变化,每个人在不同的时间。不同的地点看到的信息个不相同。技术栈:Servlet/JSP ,ASP,PHP在java中,动态web资源开发的技术统称为javaweb;1.2、web应用程序web应用程序:可以提供浏览器访问的程序;
2021-06-07 21:04:16
532
空空如也
mac怎么添加mysql环境啊?和用什么软件编写数据库呢?
2021-05-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人