JavaWeb和JavaEE开发的区别?
时间:2023-11-25 12:30:02 | 来源:网站运营
时间:2023-11-25 12:30:02 来源:网站运营
JavaWeb和JavaEE开发的区别?:经评论提醒,JDBC官方的分类是一套在SE中 与EE有关的规范。
原回答
————————
Java EE是官方出的一套规范,而Java Web是使用Java进行Web开发的行为。
Web开发中,有些部分我们推荐使用EE的规范,例如Servlet(当然你不使用这套规范,硬要自己用netty,nio甚至bio监听80端口,手动解析HTTP报文也不是不可以);
有些部分我们必须使用EE有关的规范,例如连接数据库(自己手撸数据库驱动并且还无视JDBC规范的牛人我还闻所未闻);
有些部分开源社区的类库做了对官方的兼容,例如@Resource和@Component,@Inject和@Autowired。Spring扫描注解的时候,前一对注解功能类似(采用不同的BeanProcesor注入,并且默认是按类型/名称注入),后一对则完全一致;
有些部分我们嫌弃官方做得不够好,自己实现规范(RMI规定使用序列化接口传输对象,而现在比较流行的远程服务调用框架是自己实现对象传输的编码协议的;JSP是官方的模板语言,但是实际上应用较多的是Thymeleaf freemarker等HTML模板引擎);
有些地方官方发现不够好,反过来使用开源社区流行的设计,但是还是成了小众(EJB 3.0以后的版本和Spring都有IOC和DI的功能);
有些东西应该是消失在了历史长河里(8012年了,新开发的应用还有人用JNDI来定位资源,用XML来传输数据吗?)
官方制定的规范,和开源社区的产物从远古开始纠缠,相互借鉴、依赖、淘汰,即使是2018年,使用Spring Boot开发Web应用,本质上也得注册Servlet作为整个容器的启动器(Spring Web Flux异步编程那一套可以不依赖Servlet API 了,这个比较小众所以先论外)。
到现在,主流的互联网应用开发中使用的EE规范也只有Servlet和JDBC,了解和熟悉它们提供的API就足够了。