- 博客(71)
- 收藏
- 关注
原创 SpringBoot(9)-Dubbo+Zookeeper
①在springboot的配置文件中(application.properties),配置dubbo相关属性。2、IDEA创建一个空项目,创建两个springboot模块,勾选web依赖(分别代表服务提供者和消费者)服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。开启zookeeper,开启服务者(提供者、消费者),消费者进行消费测试。
2024-11-21 22:16:34
2289
1
原创 SpringBoot(8)-任务
使用场景:后端发送邮件需要时间,前端若响应不动会导致体验感不佳,一般会采用多线程的方式去处理这些任务,但每次都需要自己去手动编写多线程来实现。注解,告诉Spring这是一个异步的方法,SpringBoot就会自己开一个线程池,进行调用。这个类中存在bean,JavaMailSenderImpl,其中有mail的配置文件。开启异步注解功能,这样才能使@Async注解生效。4、测试,网页瞬间响应,后台代码依旧执行。2、编写controller层。1、编写service层。1、编写service层。
2024-11-20 13:20:13
604
原创 SpringBoot(5)-SpringSecurity
WebSecurityConfigurerAdapter:自定义Security的策略。实现功能:登录时点击“记住我”,这样登录之后,关闭浏览器,再打开,不需要重新登陆。Spring Security是针对Spring项目的安全框架,我们仅需要引入。@EnableWebSecurity:开启WebSecurity模式。2、前端:增加一个注销的按钮,index.html 导航栏中。2、编写Spring Security 配置类。1、引入Spring Security 模块。1、开启自动配置的注销功能。
2024-11-14 15:44:34
749
原创 SpringBoot(4)- data整合
Druid是阿里巴巴开源平台上一个数据库连接池的实现,结合了C3P0、DBCP等连接池的优点,同时加入了日志。即使不使用第三方数据库操作框架(如mybatis),Spring本身也对JDBC做了轻量级封装,即。注入jdbcTemplate就可直接使用,简化了JDBC的操作,也无需手动关闭数据库连接。引入web、jdbc、mysql驱动基础模块(自动帮我们导入对应的启动器)4、 可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数等。3、编写对应的mapper映射文件(xxxMapper.xml)
2024-11-13 15:58:55
804
原创 SpringBoot-员工管理系统(2)
(注意:一般在templates下建一个commons文件,里面建一个common.html,用来放置公共页面)只需在templates下建一个error文件,将写的404.html放进去即可。知识点:thymeleaf模版引擎中自定义函数中的日期格式的方法。与添加员工基本一致,不同的是,修改员工信息需要显示该员工初始信息。replace、insert都可以。4、返回展示全部员工的页面。1、 点击添加员工按钮。
2024-11-12 13:57:41
345
原创 SpringBoot-员工管理系统(1)
2、建立一个login.properties文件,再建一个login_zh_CN.properties:此时IDEA自动识别我们要做国际化操作,文件夹会变。写一个处理的组件:MyLocaleResolver(实现LocaleResolver,则表示它是一个LocaleResolver)如果想点击链接让我们的国际化资源生效,就需要让我们自己的Locale生效!1、在resources资源文件下新建一个i18n目录,存放国际化配置文件。注意:这里路径的/,代表的是resources资源文件下的子文件。
2024-11-11 15:03:23
267
原创 SpringBoot学习(3)-web开发
模板引擎的作用:写一个页面模板,组装一些数据,将模板和数据交给模板引擎。模板引擎会把表达式解析,填充到我们指定的位置,最终生成一个我们想要的内容给我们写出去。优先级:resources > static > public。webjars:本质就是以jar包的方式引入我们的静态资源。即欢迎页,静态资源文件夹下的index.html。,就会找静态资源文件夹下的index.html。将静态资源放在resources下的。注意:目前都是基于3.x开发。jsp就是一个模板引擎。
2024-11-07 15:56:26
349
原创 SpringBoot学习(2)-yaml配置
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml , 用来指定多个环境版本。松散绑定: 比如yaml中写的是last-name,等同于lastName,-后面跟着的字母默认是大写的。作用:修改SpringBoot自动配置的默认值,因为SpringBoot底层都给我们自动配置好了。JSR303数据校验:字段增加一层过滤器验证,可以保证数据的合法性。yaml的强大之处:可以直接给实体类注入匹配值!复杂一点的实体类,使用yaml配置的方式来注入。
2024-11-07 11:07:56
1496
原创 SpringBoot学习(1)-原理
点进父项目spring-boot-starter-parent有一个父依赖spring-boot-dependencies,这里是真正管理SrpingBoot应用里面所有依赖版本的地方。以后我们导入依赖默认是不需要写版本,但如果导入的包没有在依赖中管理着,就需要手动配置版本了。例:spring-boot-starter-web帮我们导入了web模块正常运行所依赖的组件。spring-boot-starter-xxx:就是springboot的场景启动器。,看到了很多自动配置的文件,这就是自动配置根源所在!
2024-11-06 14:52:07
774
原创 java: 无法访问org.springframework.web.bind.annotation.RequestMapping
java: 无法访问org.springframework.web.bind.annotation.RequestMapping。
2024-11-06 10:03:06
895
原创 文件上传和下载
1、导入依赖:commons-fileupload、commons-io。(Maven会自动帮我们导入他的依赖包 commons-io包)2、配置bean:multipartResolver。
2024-11-05 11:47:05
260
原创 拦截器
SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,区别是,拦截器是AOP思想的具体应用。servlet规范中的一部分,任何java web项目都可以使用在url-pattern中配置了/*后,对所有要访问的资源进行拦截拦截器只是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法。
2024-11-05 10:51:36
472
原创 Ajax学习
5、启动tomcat测试!打开浏览器的控制台,当我们鼠标离开输入框的时候,可以看到发出了一个ajax的请求!是后台返回给我们的结果。AJAX:Asynchronous JavaScript and XML(异步的JavaScript和XML)1、配置web.xml和springmvc的配置文件。2、编写一个AjaxController。3、测试(及得处理json乱码问题)的情况下,能够更新部分网页的技术。4、编写index.jsp。3、 导入jquery。
2024-11-04 16:42:12
453
原创 JSON交互处理
Json是JavaScript对象的字符串表示法,它用文本表示一个JS对象的信息,本质是一个字符串前后端分离时代:后端部署后端,提供接口,提供数据;Json前端独立部署,负责渲染后端的数据。
2024-11-01 12:47:08
776
原创 整合SSM框架(1)
单元测试(junit)、mysql驱动、mybatis、mybatis-spring、servlet、jsp、jstl、spring-webmvc、spring-jdbc、连接池(如果不用spring自带的,需导入)可使用lombok插件简化创建有参、无参构造器和实现get、set方法的操作。后续需要其它再导入,如:lombok、aspectjweaver。在com.liang.dao下编写Mapper接口。在com.liang.pojo下编写Books。创建一个存放书籍数据的数据库表。
2024-10-31 15:10:28
1249
原创 SpringMVC学习(2)
1、新建一个web项目2、导入相关的jar包3、编写web.xml,注册DispatcherServlet4、编写springmvc配置文件5、创建Controller6、完善前端视图和controller之间的对应7、测试运行调试处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)通常,我们只需要手动配置视图解析器,另外两个只需要开启注解驱动即可。
2024-10-29 10:01:37
1254
原创 SpringMVC学习(1)
是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架特点:1、轻量级,简单易学2、高效,基于请求响应的MVC框架3、与Spring兼容性好,无缝结合4、约定优于配置5、功能强大:RESTful、数据验证、格式化、本地化、主题等。
2024-10-28 22:30:45
580
1
原创 Java实现文件上传功能
①为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如。④可以限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。②为防止文件覆盖的现象发生,要为上传文件产生一个。注意:form表单要加上。,因为get有大小限制。
2024-10-18 20:21:10
1101
原创 smbms(2)
2、导入用户列表页面(userlist.jsp和rollpage.jsp)为了职责统一,可以把角色的操作单独放在一个包中,和POJO类对应。1、导入分页的工具类(util中的pageSupport)1、导入阿里巴巴的fastjson依赖【用于格式转换】5、UserServiceImpl实现类。3、UserDaoImpl实现类。4、UserService接口。6、编写Servlet并注册。2、UserDao接口。
2024-10-18 16:34:20
476
原创 JavaWeb学习(3)
用户登陆之后才能进入主页!用户注销后就不能进入主页了!MVC:Model、View、Controller(模型、视图、控制器)用户直接访问控制层,控制层直接操作数据库。3、在web.xml中注册Filter。一般用来和数据库的字段做映射(ORM)1、MysqlYog中创建表,编辑字段。实现Filter接口,重写对应的方法。2、在web.xml中注册监听器。弊端:程序十分臃肿,不利于维护。实现一个监听器的接口(有N种)2、idea导入数据库驱动依赖。3、idea连接数据库。ORM:对象关系映射。
2024-10-18 14:50:28
570
原创 JavaWeb学习(1)
在Java中,动态web资源开发的技术统称为JavaWebWeb应用程序编写完毕后,若想提供给外部访问,需要一个服务器来统一管理。
2024-10-16 11:59:44
1009
原创 smbms项目(1)
4、导入项目中会遇到的jar包(servlet、jsp、mysql驱动、jstl、standard)5、创建项目包结构(pojo、dao、service、servlet、util、filter)2、编写数据库的公共类。3、编写字符编码过滤器。6、编写实体类(ORM 表-类映射)3、编写dao层,得到登录用户的接口。1、移除Session,返回登录页面。1、编写一个过滤器,并注册。4、编写dao层的实现类。8、 注册Servlet。2、设置首页(欢迎页)7、编写Servlet。2、注册Servlet。
2024-10-15 11:47:59
740
原创 jdbc连接数据库时 java.lang.RuntimeException错误解决
直接通过用户账号和密码进行连接MySQL数据库;当MySQL的版本是5.7以下则不进行要求,默认使用useSSL=false。贴别的:在MySQL8.0以上版本还需要加上本地时区,serverTimeZone=GTM/beijing。SSL(Secure Sockets Layer),安全套接字协议。url中加入 useSSL=false。如果MySQL的版本为5.7以上时,在连接mysql时,
2024-10-10 16:28:38
425
原创 spring学习(1)
使用@Autowired我们可以不用编写Set方法了,前提是你这个自动装配的属性在IOC(Spring)容器中存在,且名字符合!byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean!byName:会自动在容器上下文中寻找,和自己对象set方法后面的值对应的bean id!在Spring中实现控制反转的是。总结:在配置文件加载的时候,容器中管理的对象就已经初始化了!② 原型模式:每次从容器中get的时候,都会产生一个新的对象。1、id:bean的唯一标识符,也就是相当于我们学的对象名。
2024-08-23 18:52:58
946
原创 多线程(5)
线程池是一种多线程处理形式。处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但要等到其他线程完成后才启动。
2024-08-20 14:05:15
643
原创 多线程(4)
Java的集合容器框架中,主要四大类别有List、Map、Queue、Set,其中ArrayList、LinkedList、HashMap这些容器都是非线程安全的。如果有多个线程并发地访问这些容器,就会出现问题。因此,在编写程序时,在多线程环境下必须要求程序员手动地在任何访问这些容器的地方进行同步处理,这样导致在使用这些容器的时候非常不方便。所以Java先提供了同步容器供用户使用。同步容器可以简单地理解为通过synchronized。
2024-08-20 11:24:09
667
原创 多线程(3)
1、synchronized:在资源竞争不是很激烈的情况下,偶尔会有同步的情况下,synchronized是很合适的。2、ReentrantLock:在资源竞争不激烈的情况下,性能稍微比synchronized差点。但当同步非常激烈的时候,synchronized性能一下子下降几十倍,而ReentrantLock能维持常态。高并发量情况下使用ReentrantLock。3、Atomic:和上面类似,不激烈情况下,性能比synchronized略逊;而在激烈时,也能维持常态。
2024-08-19 16:42:29
933
原创 多线程(1)
线程等待一段时间,当时间到达或者其他条件满足时,线程会重新进入就绪状态。通过Thread.sleep()、Object.wait(timeout)、Thread.join(timeout)、LockSupport.parkNanos()等方式可进入超时等待状态。,在Java中,当我们启动main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称主线程。线程是操作系统调度的最小单位,它负责执行线程中的任务,但是线程的并发执行也可能导致一些问题,如竞态条件、死锁等。
2024-08-16 11:54:00
814
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人