Java EE

Spring注解@Resource和@Autowired区别对比

与世无争的帅哥 提交于 2020-08-18 11:46:22
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。 1、共同点 两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。 2、不同点 (1)@Autowired @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。 public class TestServiceImpl { // 下面两种@Autowired只要使用一种即可 @Autowired private UserDao userDao; // 用于字段上 @Autowired public void setUserDao(UserDao userDao) { // 用于属性的方法上 this .userDao = userDao; } } @Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合

一位资深程序员大牛给予Java初学者的学习路线建议

不打扰是莪最后的温柔 提交于 2020-08-18 11:04:29
Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。   在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。   如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。   一、Java基础首先去找一个Java的基础教程学一下,这里可以推荐一个Java学习交流的QQ群(群号码:589809992)你可以到这个群里找相应的视频教程。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了

CSDN慕舲的黑夜-必问 抨击@民意 [导读]1.必问的运营模式&店大欺客@CSDN 2.必问做的手脚&必问的发展限制 3.CSDN令人意见很大的地方 4.我对CSDN的看法

喜你入骨 提交于 2020-08-18 09:07:26
这篇文章本来是面向 biwen .csdn.net(CSDN的必问gitchat)的,后来出了 "csdn慕舲的黑夜2,3...", 有" CSDN的15个bugs,必问做的手脚,gitchat前景 "等,由于博客被封等原因几经辗转,合并为一篇, 深刻分析CSDN及其产品,欢迎转发,转载,评论 [小福利#1] 如果没有cnblogs号,可以到 https://www.materialtools.com/?page=1 自取一个能用的,当然推荐注册一个,加入园子技术交流分享知识,具体可参考: https://www.cnblogs.com/dlight/p/get.html 创作不易,希望读完全文 //如果是要提问,推荐加作者QQ3461896724解决 本文 链接 https://www.cnblogs.com/dlight/p/biwen.html 注: 所有图片都可以在新标签页打开放大至原图 > 。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。 先简单介绍一下必问 //来自 https://baike.baidu.com/item/蒋涛/9905541 (蒋涛) 和 biwen.csdn.net 的截图 蒋涛 ,1997年作为" 金山词霸 "" 金山打字通 "等产品的领导开发者(你们都用过吧), 1999 年创办了号称"%1,%2

如何把 jpa 实体 生成json格式

情到浓时终转凉″ 提交于 2020-08-18 08:41:55
引用的jar包 <dependency> <groupId> com.vladmihalcea </groupId> <artifactId> hibernate-types-5 </artifactId> <version> 2.9.10 </version> </dependency> 类前引用 @TypeDef ( name = "json" , typeClass = JsonStringType. class ) 字段前引用 @Type ( type = "json" ) @Column ( columnDefinition = "json" ) private Object otherProps ; 来源: oschina 链接: https://my.oschina.net/u/3677751/blog/4305586

Servlet规范系列 之 ServletRequest源码分析

泪湿孤枕 提交于 2020-08-18 08:00:13
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! ​  ServletRequest由Servlet容器来管理,当客户请求到来时,容器创建一个ServletRequest对象,封装请求数据,同时创建一个ServletResponse对象,封装响应数据。这两个对象将被容器作为service()方法的参数传递给Servlet,Servlet利用ServletRequest对象获取客户端发来的请求数据,利用ServletResponse对象发送响应数据。 ​   ServletRequest ​​  ServletRequest主要用于请求的封装,提供了很多请求相关操作,具体API如下: package javax . servlet ; import java . io . BufferedReader ; import java . io . IOException ; import java . util . Enumeration ; import java . util . Locale ; import java . util . Map ; /** * 定义一个对象以向servlet提供客户端请求信息. * servlet容器创建一个ServletRequest对象,并将其作为参数传递给servlet的service方法. */ public interface

Java 程序员如何使用 Shiro 框架

不羁的心 提交于 2020-08-18 07:14:50
微信搜索【 Java秃头哥 】,关注我,每天8点半推送技术优质文章。回复关键词“222”,领取100本架构师相关书籍。 作者:冷豪 来自:www.cnblogs.com/learnhow/p/5694876.html 一、架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例: 1、使用用户的登录信息创建令牌 UsernamePasswordToken token = new UsernamePasswordToken(username, password); token可以理解为用户令牌,登录的过程被抽象为Shiro验证令牌是否具有合法身份以及相关权限。 2、执行登陆动作 SecurityUtils.setSecurityManager(securityManager); // 注入SecurityManager Subject subject = SecurityUtils.getSubject(); // 获取Subject单例对象 subject.login(token); // 登陆 Shiro的核心部分是SecurityManager,它负责安全认证与授权。Shiro本身已经实现了所有的细节

session保存用户登录

荒凉一梦 提交于 2020-08-18 06:58:57
< %@ page language ="java" contentType ="text/html; charset=UTF-8" pageEncoding ="UTF-8" % > <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" > < title > Insert title here </ title > </ head > < body > < % session.invalidate (); % > < form action ="yanzheng.jsp" method ="post" > 用户名: < input type ="text" name ="yonghu" > 密码: < input type ="password" name ="mima" > < input type ="submit" value ="登录" > </ form > </ body > </ html > < %@ page language =

「2020最新」Spring最易学习教程—第一个Spring程序

可紊 提交于 2020-08-18 05:40:20
1 Spring简介 Spring 是一款轻量级的JavaEE开发框架,其对比的EJB是Sun官方力推的JavaEE解决方案。使用EJB编码必须要实现EJB的组件,必须运行在支持EJB的服务器中,无论是测试还是运行都十分不便。Spring能够非侵入的解决JavaEE的通用问题,在测试、运行、扩展等方面比EJB强大的多。 Spring构建于众多优秀的设计模式之上: 工厂设计模式 、 代理设计模式 、模板方法设计模式、策略设计模式... 设计模式:前人总结好的,用于解决特定问题的方案。 学习Spring的核心就是学习其应用的设计模式本身要解决那些问题。 2 工厂设计模式 工厂设计模式:使用工厂创建对象,代替new创建对象。 new模式的问题: new模式下,类和类之间是强耦合的。 解决方案:工厂设计模式(解耦合) 配置一个properties文件 userService=com.bcl.service.impl.UserServiceImpl 创建BeanFactory工厂类 public class BeanFactory { private static Properties prop = new Properties(); static{ //通过流读取配置文件,保存到prop InputStream in = BeanFactory.class

mysql 数据丢失更新的解决方法

我的未来我决定 提交于 2020-08-18 04:57:12
问题描述:  mysql 数据库丢失更新的定义:(其实在数据库角度都不会产生丢失更新的问题,问题的源头应用程序逻辑更新的问题)   1. 事务1 查询一行数据放在本地缓存,并且显示给用户user1 -->select balance from account where user= 'a' ;   2. 事务2 查询同样的一行数据放在本地缓存,并且显示给用户user2 -->select balance from account where user= 'a' ;   3. 用户user1修改这条数据,并且更新提交数据库 --> update account set balance = balance -100 where user= 'a' ;   4. 用户user2修改显示的数据,并且更新提交数据库 --> update account set balance = balance -800 where user= 'a' ;   显然上面user1 更新的数据丢失了,这也是更新覆盖,比如用户转账的操作。 a 账户总共1000,事务1和事务2查询账户都是1000,然后事务1账户扣减100,提交。事务2扣减800提交。这时候账户余额为200,事务1扣减的100 会不翼而飞,实际上应该剩下100 ,这会导致严重的问题。 -------------------------------

优秀的 Java 项目,代码都是如何分层的?

回眸只為那壹抹淺笑 提交于 2020-08-18 04:05:15
作者: 咖啡拿铁 来源: https://urlify.cn/juam Iv 1、背景 说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。 的确在这些人眼中分层只是一个形式,前辈们的代码这么写的,其他项目代码这么写的,那么我也这么跟着写。但是在真正的团队开发中每个人的习惯都不同,写出来的代码必然带着自己的标签,有的人习惯controller写大量的业务逻辑,有的人习惯在service中之间调用远程服务,这样就导致了每个人的开发代码风格完全不同,后续其他人修改的时候,一看,我靠这个人写的代码和我平常的习惯完全不同,修改的时候到底是按着自己以前的习惯改,还是跟着前辈们走,这又是个艰难的选择,选择一旦有偏差,你的后辈又维护你的代码的时候,恐怕就要骂人了。 所以一个好的应用分层需要具备以下几点: 方便后续代码进行维护扩展; 分层的效果需要让整个团队都接受; 各个层职责边界清晰。 2、如何进行分层 2.1、阿里规范 在阿里的编码规范中约束的分层如下: