spring中应不应该用JAVA配置(spring用处)

Java Web 中如何用 Spring Security

大家好,关于spring中应不应该用JAVA配置很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java 不建议使用注解的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

  1. spring中应不应该用JAVA配置
  2. Java编程中代码规范很重要吗
  3. 怎样理解Java的注解并运用注解编程
  4. Java开发如果不让使用spring框架,会有多大影响

spring中应不应该用JAVA配置

Spring重要的ioc和aop。负责的是生成对象的任务和配置业务逻辑之外的功能(日志,安全……)。刚学习的时候只不过让你了解Spring,防止你混乱,没用用其他框架。而使用Java基本jdbc。实际开发交给hibernate和mybatis处理。Hibernate有三种使用操作数据库的,hql,sql,criteria。mybatis比hibernate更加灵活,简洁,注重sql语句,它是写在mapping.xml中的。给步入坑的同学建议:随着技术发展,新技术不断涌出,使用的工具越来越方便的。其实新技术就是解决之前存在的问题,所以编程越来越方便,所以不要怕新技术。面试自己的项目多用一些比较突出的新技术,有了亮点,这样可以脱颖而出,因为每个人都用这旧技术,没亮点,好难聘用你。毕竟初级程序员已经好饱和了,目前就是你要比这些人更出众。

Java编程中代码规范很重要吗

1、好的编码规范可以尽可能的减少一个百软件的维护成本,并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护;2、好的编码规范可以改善度软件的可读性,可以让开发人员尽快而彻底地理解新的代码;3、好的编码规范可以最大限度的提高团队开发的内合作效率;4、长期的规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严容谨的思维;所以是很重要的。

怎样理解Java的注解并运用注解编程

一、什么是注解

注解也叫元数据,例如我们常见的@Override和@Deprecated,注解是JDK1.5版本开始引入的一个特性,

用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。

一般常用的注解可以分为三类:

1、Java自带的标准注解,包括@Override(标明重写某个方法)、@Deprecated(标明某个类或方法过时)和@SuppressWarnings(标明要忽略的警告),使用这些注解后编译器就会进行检查。

2、类为元注解,元注解是用于定义注解的注解,包括@Retention(标明注解被保留的阶段)、@Target(标明注解使用的范围)、@Inherited(标明注解可继承)、@Documented(标明是否生成javadoc文档)

3、类为自定义注解,可以根据自己的需求定义注解

二、注解的用途

在看注解的用途之前,有必要简单的介绍下XML和注解区别,

注解:是一种分散式的元数据,与源代码紧绑定。

xml:是一种集中式的元数据,与源代码无绑定

当然网上存在各种XML与注解的辩论哪个更好,这里不作评论和介绍,主要介绍一下注解的主要用途:

生成文档,通过代码里标识的元数据生成javadoc文档。

编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。

编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。

运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例

三、注解的实现原理

实现注解三要素:

1、注解声明

2、使用注解的元素

3、操作注解使其起作用(注解处理器)

注解声明

首先我们让看一下java中的元注解(也就是上面提到的注解的注解),总共有4个如下:

@Target,@Retention,@Documented,@Inherited这4个元注解都是在jdk的java.lang.annotation包下面,

@Target:Target说明的是Annotation所修饰的对象范围。@Retention:

定义了该Annotation被保留的时间长短:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,

而另一些在class被装载时将被读取(请注意并不影响class的执行,因为Annotation与class在使用上是被分离的)。

使用这个元注解可以对Annotation的“生命周期”限制。@Documented:@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员

@Inherited:@Inherited元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,

则这个annotation将被用于该class的子类。

注意:@Inheritedannotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。

当@Inheritedannotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。如果我们使用java.lang.reflect去查询一个@Inheritedannotation类型的annotation时,

反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层。

java.lang.reflect.AnnotatedElement接口是所有程序元素(Class、Method和Constructor)的父接口,所以程序通过反射获取了某个类的AnnotatedElement对象之后,程序就可以调用该对象的如下四个个方法来访问Annotation信息:

方法1:<TextendsAnnotation>TgetAnnotation(Class<T>annotationClass):返回改程序元素上存在的、指定类型的注解,如果该类型注解不存在,则返回null。

方法2:Annotation[]getAnnotations():返回该程序元素上存在的所有注解。

方法3:booleanisAnnotationPresent(Class<?extendsAnnotation>annotationClass):判断该程序元素上是否

Java开发如果不让使用spring框架,会有多大影响

这个想法不错!如果没有spring,我们正常的一个项目应该怎么搭建和开发?

不允许使用Spring框架意味着搭建的项目不允许使用SpringBoot、SpringMVC、Spring这些Spring家族的框架,既然如此ORM框架我们也不要使用,在这样的限制条件下,项目应该如何搭建?日常CRUD应该如何开发?

心动不如行动,开始搭建,先创建一个简单的maven项目no_spring_example:

这个项目我们需要它具备如下的几个能力:

1、能够提供http接口访问能力;

2、能够操作MySQL数据库,支持事务,支持连接池;

3、能够操作redis;

4、可以部署在tomcat容器。

开始搭建中。。。

竟然花了我将近2个小时的时间,终于跑起来了,先看看项目整体架子:

相关包介绍:

org.example.conf:

DruidUtil:数据源配置,采用的是阿里巴巴开源的druid;MysqlBaseUtil:Mysql数据库的增、删、改、查基本操作,支持单次和批量;RedisUtil:redis操作工具类,采用的是JedisPool。

org.example.dao:

Test1Dao:这个就是对数据库里test1表的操作。

org.example.dispatcher:

StartupServlet:启动类Servlet,利用loda-on-startup来初始化加载WEB-INF/config目录的一些配置文件;Config:即加载servlet.conf文件中的配置信息,比如MySQL连接信息、redis连接信息

org.example.filter:

GolbalFilter:全局过滤器,web三大组件之一;

org.example.servlet:

Test1AddServlet:新增数据api;

让我们把它运行到tomcat容器中,然后访问接口:http://localhost:8080/no_spring_example_war/test1/add.do

返回成功了,查看数据库表数据:

这样我们的数据库操作就通了,一个完全没有Spring相关框架参与的小架子就搭建完毕!

由于篇幅原因,涉及到redis操作、数据库事务并没有展现,感兴趣的同学可以私信我获取该项目源代码,让我们一起回忆青春~

回到问题本身,没有spring框架,对我们开发有什么影响?

结合上面这个项目来看,确实需要我们自己做的事情比较多,比如:

参数的获取、校验、序列化成对象;数据的返回,反序列化成json;数据库的操作需要我们手写sql;连接池需要我们自己初始化,事务需要我们自己回滚;只能使用Filter、Interceptor,不再有强大的AOP,这个也需要你自己去实现;随着业务的复杂,我们需要集成其他功能,例如异步、中间件等都需要我们自己去开发;

用惯了Spring框架的我们,或许这个时候才知道它的好吧~

不过话说回来,如果真的在实际工作中不用Spring框架完成一个项目的话,你的基础能力一定会有很大的提升,包括工具类的抽取、对象的封装,基础组件的使用以及理解等,只要你是一个有追求的程序员~

框架虽好用,但是却容易蒙住我们的双眼。

最后,给你们再看一眼曾经多么熟悉的web.xml:

如果你还想了解更多这方面的信息,记得收藏关注本站。

为什么说 Java 程序员到了必须掌握 Spring Boot 的时候

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://bk.77788889.com/12/105238.html

相关推荐