‘壹’ spring-boot 适合开发web应用吗
spring-boot 适合开发web应用的
静态资源访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
默认配置
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。
渲染Web页面
在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢?
模板引擎
在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。
Thymeleaf
Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。
Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
‘贰’ 如何用Spring Web MVC架构图进行开发
SpringMVC工作流程描述
(1)向服务器发送HTTP请求,请求被前端控制器DispatcherServlet捕获。
(2)DispatcherServlet 根据<servlet-name>-servlet.xml中的配置对请求的URL进行解析,得到请求资源标识符(URI)。
然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回。
(3)DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)。
(4)提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。
数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。
(5)Handler(Controller)执行完成后,向 DispatcherServlet 返回一个ModelAndView对象;
(6)根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet。
(7)ViewResolver 结合Model和View,来渲染视图。
(8)视图负责将渲染结果返回给客户端。
‘叁’ 如何用myeclipse spring mvc 开发web
环境版本
IDE:MyEclipse 8.5
Spring:spring 3.2.8
JDK:1.6
1.打开MyEclipse-->File-->New-->Web Project,在打开的对话框里面输入project Name为SpringMvc,点击Finish。如下图所示:
2.在新建项目上右键选择,properties-->Java Build Path-->Libraries-->Add External JARs,引入spring-framework-3.2.8.RELEASE-dist目录下几个必需的jar包.
3.文件结构
4.web.xml配置:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 监听所有请求 --> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
5.springmvc-servlet.xml配置:
<?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://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 扫描所有的 controller --> <context:component-scan base-package="com.springmvc.controllers" /> <!-- 启动注解驱动 SpringMVC 功能 --> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/views/" /> <property name="suffix" value=".jsp" /> </bean></beans>
6.在WebRoot目录下,新建views文件夹,添加index.jsp.
7.在com.springmvc.controllers包下,新建HomeController类文件,
8.部署项目运行,访问http://localhost:8080/SpringMvc/home,
‘肆’ 初学java web开发,用spring+ibatis+velocity,请推荐一本比较经典的书,最好是入门级的,谢谢!!
额,这三个合在一起的书很少有吧,还是先单个学习,在做整合的项目吧
‘伍’ 基于spring开发的b/s架构的web系统,有哪些提升性能的办法
一般而言, 普通的项目很难达到非常夸张的流量, 如果提升性能可以做一下操作
对于高频的请求, 看能否使用缓存, 减少压力, 比如用guava/redis
mysql根据你的业务进行索引优化与sql查询优化, 对于这类架构来说提升最为明显
可以look at my name 找一些例子
‘陆’ 基于Spring框架开发的Web程序,如何动态修改
18岁觉醒了,
‘柒’ 如何利用spring boot做一个简单的web应用
spring-boot适合开发web应用的静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置SpringBoot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问页面的时候,要如何实现呢?模板引擎在动态HTML实现上SpringBoot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。SpringBoot提供了默认配置的模板引擎主要有以下几种:建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现SpringBoot的多种特性,具体可见后文:支持JSP的配置当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。ThymeleafThymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于ApacheLicense2.0许可,由DanielFernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合SpringMVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
‘捌’ 如何开发线程安全的Spring Web应用
如果开发者正开发或维护基于Servlet的Web应用,则Servlet规范建议最好能够看看。因为它含有的内容对于Web应用开发者理解Servlet容器的工作机理很有帮助。
规范中最有趣的一部分是给出了Servlet容器是如何处理客户请求的。Servlet容器将会根据web.xml配置文件中定义的各个Servet而创建相应的单例(Singleton)。因此,客户请求可能同时访问这些单例,即多个线程同时运行你的代码。在Web应用中保证线程安全是很重要的。开发者应该对这个问题保持警惕,而且必须确保各自的代码必须以线程安全的方式运行。
‘玖’ eclipse3.5如何配置spring web开发环境
1、开始使用Myeclipse应为如果要研究spring基本上是用于jee开发的居多,Myeclipse已经为带有了很多常用的插件,开发起来非常便利。
2、使用Myeclipse建立项目,有两个方法可以建立项目
1.file---new---web project 输入项目名,完成
2.在左边package Explorer空白处,右击---new---web project同上建立成功
3、右击项目名---properties---java build path---Libraries 点右边的 "Add Library",在跳出的窗口中选择 “MyEclipse Libraries”,然后 把spring 2.5的都勾上。
以上项目spring jar包安装完毕
然后是配置文件:
1 打开项目的WebRoot--WEB-INF 下打开web.xml
这样你就配置好了
‘拾’ spring在web项目中配置的几种方式的分析
1. 加载spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application-*</param-value>
</context-param>
2. 配置监听器 作用: 在启动web容器的时候 自动装配Spring application.xml配置信息
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3. springmvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4. /
<servlet-mapping>
<servlet-name>springmVC</servlet-name>
<!--
第一种: *.action,访问以。action结尾 由DispatcherServlet解析
第二种 : /,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让Dispatcher进行解析
第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面,仍然有Dispatcher进行解析 Handler找不到这样就会报错
*/
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
5. 解决乱码的问题
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>