mac下idea设置spring.profiles.active问题

mac下idea设置spring.profiles.active问题,第1张

在springboot项目中,通过idea在配置spring.profiles.active

(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

至此配置完成,修改文件后不用重启,刷新页面即可看到效果


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11143793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存