(1)在windows下点击idea的启动,可以通过System.getProperty("spring.profiles.active")获取到dev值
(2)在mac下点击idea的启动,同样的配置,但通过System.getProperty("spring.profiles.active")时获取到的值是null;
对比:
(1)在windows启动时,控制台输出:
参数设置被直接以-Dspring.profiles.active=dev追加到了 java命令之后,是以虚拟机参数进行设置
(2)在mac启动时,控制台输出:
参数设置被直接以--spring.profiles.active=dev追加到了 启动类命令之后
在命令运行时,连续两个减号 --就是对application.properties中属性值进行赋值的标志。
那么在mac下可以通过设置VM options来达到windows相同的效果
这时,命令窗会出现:
但是这样的话就会出现多个spring.profiles.active(-Dspring.profiles.active=dev和最末尾--spring.profiles.active=dev)那么两个值最终取的是哪个呢? 按照springboot配置加载优先级来看,最终程序中使用优先级更高的--spring.profiles.active
需要注意:-Dspring.profiles.active=dev是将值设置到了虚拟机中,通过System.getProperty("spring.profiles.active")可以获取到dev但是使用--spring.profiles.active=dev使用System.getProperty("spring.profiles.active")是获取不到的。
Spring Boot 所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下:
1.命令行参数。
2.通过 System.getProperties() 获取的 Java 系统参数。
3. *** 作系统环境变量。
4.从 java:comp/env 得到的 JNDI 属性。
5.通过 RandomValuePropertySource 生成的“random.*”属性。
6.应用 Jar 文件之外的属性文件。(通过spring.config.location参数)
7.应用 Jar 文件内部的属性文件。
8.在应用配置 Java 类(包含“@Configuration”注解的 Java 类)中通过“@PropertySource”注解声明的属性文件。
9.通过“SpringApplication.setDefaultProperties”声明的默认属性
五、SpringMVC框架配置进行完上面的配置,那就说明现在基本的开发环境已经搭建好了,现在要开始进行SpringMVC的网站开发。
1、web.xml配置
打开src\main\webapp\WEB-INF\下的web.xml文件,稍微更新一下web.xml的版本,可以支持更高级的一些语法,如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns=" http://xmlns.jcp.org/xml/ns/javaee "
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation=" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd "
version="3.1">
<display-name>SpringMVCDemo Web Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>```
该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为 / ,说明拦截所有请求),并交由Spring MVC的后台控制器来处理。这一项配置是必须的。
为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans "
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
</beans>```
MVC框架有model、view、controller三部分组成。model一般为一些基本的Java Bean,view用于进行相应的页面显示,controller用于处理网站的请求。
在src\main\java中新建一个用于保存controller的package:
(1)@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
(2)@RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;
(3)return "index":处理完该请求后返回的页面,此请求返回 index.jsp页面。
回到mvc-dispatcher-servlet.xml,进行相关配置。首先加入component-scan标签,指明controller所在的包,并扫描其中的注解(最好不要复制,输入时按IDEA会在beans xmlns中添加相关内容):
<mvc:default-servlet-handler/>```
再开启springmvc注解模式,由于我们利用注解方法来进行相关定义,可以省去很多的配置:
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>```
关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。
完成以上配置后,mvc-dispatcher-servlet.xml文件如下图所示:
<%@ page contentType="text/htmlcharset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SpringMVC Demo 首页</title>
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<h1>这里是SpringMVC Demo首页</h1>
<h3>出现此页面,说明配置成功。</h3>
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>```
选择汤姆版本,选择jdk,添加汤姆猫对应的目录
到这里整个Tomcat配置结束.
到这里就完成可以打开页面了
1)设置IDEA的自动编译:
“File”→“Settings(Ctrl+Alt+S)”→“Build, Execution, Deplyment”→“Compiler”,选中“Build project automatically” 打勾
2)组合键 Shift+Ctrl+Alt+/,选择 Registry ,找到compiler.automake.allow.when.app.running,选中打勾。
(或者CTRL + SHIFT + A -->查找Registry)
设置游览器禁用缓存:F12
至此配置完成,修改文件后不用重启,刷新页面即可看到效果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)