spring配置详解

合集下载

spring配置文件各个属性详解

spring配置文件各个属性详解

spring配置文件各个属性详解分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere目录(?)[+]一、引用外部属性文件<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:mail.properties</value><value>classpath:jdbc.properties</value></list></property></bean>我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。

该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。

注意:而在spring2.5的版本中提供了一种更简便的方式,如:1.<context:property-placeholderlocation="classpath:config/jdbc.properties"/>这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。

二、常用数据源的配置第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:<!-- Mysql版--><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="${jdbc.url}"></property><property name="username" value="${ername}"></property><property name="password" value="${jdbc.password}"></property></bean>第二种是:c3p0数据源,跟第一种一个类型,需加入c3p0.jar包。

spring MVC原理及配置

spring MVC原理及配置

spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。

借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。

这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。

springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。

他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。

2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。

(3)调用处理器:dispatcherservlet将请求提交到controller。

(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。

3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。

在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。

(2)handlermappingUSB:能够完成客户请求到controller映射。

(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。

Spring的datasource配置详解

Spring的datasource配置详解

Spring的datasource配置详解⼀句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。

下⾯就详细介绍dataSource Bean的配置。

先上代码(⽐较齐全的属性)<bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driverClassName}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 连接初始值,连接池启动时创建的连接数量的初始值 --><property name="initialSize" value="${initialSize}" /><!-- 连接池的最⼤值,同⼀时间可以从池分配的最多连接数量,0时⽆限制 --><property name="maxActive" value="${maxActive}" /><!-- 最⼤空闲值.当经过⼀个⾼峰时间后,连接池可以慢慢将已经⽤不到的连接慢慢释放⼀部分,⼀直减少到maxIdle为⽌,0时⽆限制--><property name="maxIdle" value="${maxIdle}" /><!-- 最⼩空闲值.当空闲的连接数少于阀值时,连接池就会预申请去⼀些连接,以免洪峰来时来不及申请 --><property name="minIdle" value="${minIdle}" /><!-- 是否对已备语句进⾏池管理(布尔值),是否对PreparedStatement进⾏缓存 --><property name="poolPreparedStatements" value="true" /><!-- 是否对sql进⾏⾃动提交 --><property name="defaultAutoCommit" value="true" /></bean>1.Bean的id为dataSource,对应的java类是BasicDataSource,这个类适⽤于配置基本类型的数据库连接,如果要想进⾏多数据源,那么该Bean对应的java类就得⽤DynamicDataSource。

springboot整合CAS配置详解

springboot整合CAS配置详解

springboot整合CAS配置详解在下不才,以下是我花了好⼏天的时间才整合出来的在spring boot⾥⾯的CAS配置整合为了帮助没搞定的⼈,毕竟⾃⼰踩了很多坑,⼀步⼀步爬过来的,有什么不⾜之处可以给建议谢谢(⼩部分代码是整合他⼈的)1.不多废话,直接上最重要的代码,以下代码整合cas的重要过程import org.jasig.cas.client.authentication.AuthenticationFilter;import org.jasig.cas.client.session.SingleSignOutFilter;import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;import org.jasig.cas.client.util.AssertionThreadLocalFilter;import org.jasig.cas.client.util.HttpServletRequestWrapperFilter;import org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter;import org.jasig.cas.client.validation.Cas20ServiceTicketValidator;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.cas.ServiceProperties;import org.springframework.security.cas.authentication.CasAuthenticationProvider;import erdetails.GrantedAuthorityFromAssertionAttributesUserDetailsService;import org.springframework.security.web.authentication.logout.LogoutFilter;import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;import java.util.List;@Configurationpublic class CasConfig {@AutowiredSpringCasAutoconfig autoconfig;private static boolean casEnabled = true;public CasConfig() {}@Beanpublic SpringCasAutoconfig getSpringCasAutoconfig(){return new SpringCasAutoconfig();}/*** ⽤于实现单点登出功能*/@Beanpublic ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> singleSignOutHttpSessionListener() {ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> listener = new ServletListenerRegistrationBean<>();listener.setEnabled(casEnabled);listener.setListener(new SingleSignOutHttpSessionListener());listener.setOrder(1);return listener;}/*** 该过滤器⽤于实现单点登出功能,单点退出配置,⼀定要放在其他filter之前*/@Beanpublic FilterRegistrationBean logOutFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();LogoutFilter logoutFilter = new LogoutFilter(autoconfig.getCasServerUrlPrefix() + "/logout?service=" + autoconfig.getServerName(),new SecurityContextLogoutHandler()); filterRegistration.setFilter(logoutFilter);filterRegistration.setEnabled(casEnabled);if(autoconfig.getSignOutFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getSignOutFilters());elsefilterRegistration.addUrlPatterns("/logout");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(2);return filterRegistration;}/*** 该过滤器⽤于实现单点登出功能,单点退出配置,⼀定要放在其他filter之前*/@Beanpublic FilterRegistrationBean singleSignOutFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new SingleSignOutFilter());filterRegistration.setEnabled(casEnabled);if(autoconfig.getSignOutFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getSignOutFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(3);return filterRegistration;}/*** 该过滤器负责⽤户的认证⼯作*/@Beanpublic FilterRegistrationBean authenticationFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new AuthenticationFilter());filterRegistration.setEnabled(casEnabled);if(autoconfig.getAuthFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getAuthFilters());elsefilterRegistration.addUrlPatterns("/*");//casServerLoginUrl:cas服务的登陆urlfilterRegistration.addInitParameter("casServerLoginUrl", autoconfig.getCasServerLoginUrl());//本项⽬登录ip+portfilterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.addInitParameter("useSession", autoconfig.isUseSession()?"true":"false");filterRegistration.addInitParameter("redirectAfterValidation", autoconfig.isRedirectAfterValidation()?"true":"false");filterRegistration.setOrder(4);return filterRegistration;}/*** 该过滤器负责对Ticket的校验⼯作*/@Beanpublic FilterRegistrationBean cas20ProxyReceivingTicketValidationFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();Cas20ProxyReceivingTicketValidationFilter cas20ProxyReceivingTicketValidationFilter = new Cas20ProxyReceivingTicketValidationFilter(); //cas20ProxyReceivingTicketValidationFilter.setTicketValidator(cas20ServiceTicketValidator());cas20ProxyReceivingTicketValidationFilter.setServerName(autoconfig.getServerName());filterRegistration.setFilter(cas20ProxyReceivingTicketValidationFilter);filterRegistration.setEnabled(casEnabled);if(autoconfig.getValidateFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getValidateFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(5);return filterRegistration;}/*** 该过滤器对HttpServletRequest请求包装,可通过HttpServletRequest的getRemoteUser()⽅法获得登录⽤户的登录名**/@Beanpublic FilterRegistrationBean httpServletRequestWrapperFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new HttpServletRequestWrapperFilter());filterRegistration.setEnabled(true);if(autoconfig.getRequestWrapperFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getRequestWrapperFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.setOrder(6);return filterRegistration;}/*** 该过滤器使得可以通过org.jasig.cas.client.util.AssertionHolder来获取⽤户的登录名。

Spring中注解配置与xml配置分析

Spring中注解配置与xml配置分析

虽然 2.0 版本发布以来,Spring 陆续提供了十多个注解,但是提供的这些注解只是为了在某些情况下简化 XML 的配置,并非要取代 XML 配置方式。这一点可以从 Spring IoC 容器的初始化类可以看出:ApplicationContext 接口的最常用的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContext,以及面向 Portlet 的 XmlPortletApplicationContext 和面向 web 的 XmlWebApplicationContext,它们都是面向 XML 的。Spring 3.0 新增了另外两个实现类:AnnotationConfigApplicationContext 和 AnnotationConfigWebApplicationContext。从名字便可以看出,它们是为注解而生,直接依赖于注解作为容器配置信息来源的 IoC 容器初始化类。由于 AnnotationConfigWebApplicationContext 是 AnnotationConfigApplicationContext 的 web 版本,其用法与后者相比几乎没有什么差别
也可以单独显式地来启用某个注解处理器,而且可以给处理器添加拦截器:
<be.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean class="monAnnotationBeanPostProcessor"/>
<mvc:annotation-driven />
当然了也可以使用如下的方式显式地加载:

spring中bean配置和bean注入

spring中bean配置和bean注入

spring中bean配置和bean注⼊1 bean与spring容器的关系Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建⽴Bean定义注册表,然后根据注册表加载、实例化Bean,并建⽴Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应⽤程序进⾏调⽤。

1 bean配置bean配置有三种⽅法:基于xml配置Bean使⽤注解定义Bean基于java类提供Bean定义信息1.1 基于xml配置Bean对于基于XML的配置,Spring 2.0以后使⽤Schema的格式,使得不同类型的配置拥有了⾃⼰的命名空间,是配置⽂件更具扩展性。

①默认命名空间:它没有空间名,⽤于Spring Bean的定义;②xsi命名空间:这个命名空间⽤于为每个⽂档中命名空间指定相应的Schema样式⽂件,是标准组织定义的标准命名空间;③aop命名空间:这个命名空间是Spring配置AOP的命名空间,是⽤户⾃定义的命名空间。

命名空间的定义分为两个步骤:第⼀步指定命名空间的名称;第⼆步指定命名空间的Schema⽂档样式⽂件的位置,⽤空格或回车换⾏进⾏分分隔。

1.1.1 Bean基本配置在Spring容器的配置⽂件中定义⼀个简要Bean的配置⽚段如下所⽰:⼀般情况下,Spring IOC容器中的⼀个Bean即对应配置⽂件中的⼀个<bean>,这种镜像对应关系应该容易理解。

其中id为这个Bean的名称,通过容器的getBean("foo")即可获取对应的Bean,在容器中起到定位查找的作⽤,是外部程序和Spring IOC容器进⾏交互的桥梁。

class属性指定了Bean对应的实现类。

下⾯是基于XML的配置⽂件定义了两个简单的Bean:<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd"><bean id="car" name="#car1" class="com.baobaotao.simple.Car"></bean><bean id="boss" class="com.baobaotao.simple.Boss"></bean></beans>1.1.2 依赖注⼊1. 属性注⼊2. 构造函数注⼊3. ⼯⼚⽅式注⼊1.2 使⽤注解定义Bean我们知道,Spring容器成功启动的三⼤要件分别是:Bean定义信息、Bean实现类以及Spring本⾝。

Spring事务配置的五种方式

Spring事务配置的五种方式

Spring事务原理统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatusspring提供了几个关于事务处理的类:TransactionDefinition //事务属性定义TranscationStatus //代表了当前的事务,可以提交,回滚。

PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。

一般事务定义步骤:TransactionDefinition td = new TransactionDefinition();TransactionStatus ts = transactionManager.getTransaction(td);try{ //do sthmit(ts);}catch(Exception e){transactionManager.rollback(ts);}spring提供的事务管理可以分为两类:编程式的和声明式的。

编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。

编程式主要使用transactionTemplate。

省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象.void add(){transactionTemplate.execute( new TransactionCallback(){pulic Object doInTransaction(TransactionStatus ts){ //do sth}}}声明式:使用TransactionProxyFactoryBean:<bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager"><ref bean="transactionManager"/></property><property name="target"><ref local="userManagerTarget"/></property><property name="transactionAttributes"><props><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="*">PROPAGATION_REQUIRED,readOnly</prop></props></property></bean>围绕Poxy的动态代理能够自动的提交和回滚事务org.springframework.transaction.interceptor.TransactionProxyFactoryBeanPROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。

springlog4j2.xml配置文件详解

springlog4j2.xml配置文件详解

springlog4j2.xml配置⽂件详解⼀、log4j2介绍 log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为".xml",".json"或者".jsn"。

配置⽂件的格式:log2j配置⽂件可以是xml格式的,也可以是json格式的。

配置⽂件的位置:log4j2默认会在classpath⽬录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的⽂件。

系统选择配置⽂件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件. (2).classpath下的名为log4j2-test.xml的⽂件. (3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件. (4).classpath下名为log4j2.xml的⽂件. 我们⼀般默认使⽤log4j2.xml进⾏命名。

⼆、配置⽂件节点解析 (1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger)。

status⽤来指定log4j本⾝的打印⽇志的级别。

monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s。

(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File。

Console节点⽤来定义输出到控制台的Appender。

name:指定Appender的名字. target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT。

PatternLayout:输出格式,不设置默认为:%m%n。

SpringMVC目录结构配置

SpringMVC目录结构配置

SpringMVC目录结构配置SpringMVC是一种常见的Java Web框架,它遵循MVC(Model-View-Controller)设计模式,用于构建灵活可扩展的Web应用程序。

SpringMVC的目录结构对于项目的开发和维护非常重要,下面会详细介绍SpringMVC的标准目录结构以及配置方式。

1.标准目录结构1.1 src/main/java:主要用于存放Java源代码。

1.2 src/main/resources:主要用于存放配置文件和资源文件。

1.3 src/main/webapp:主要用于存放Web应用的静态资源。

1.4 src/test/java:主要用于存放测试用例的Java源代码。

1.5 src/test/resources:主要用于存放测试用例的配置文件和资源文件。

2.详细解析2.1 src/main/java目录src/main/java目录是存放Java源代码的默认目录,它包括以下几个子目录:- config:用于存放Spring配置类,如配置数据库连接、配置事务管理等。

- interceptor:用于存放SpringMVC的拦截器。

- model:用于存放数据模型相关的实体类。

- util:用于存放工具类。

- web:用于存放SpringMVC的控制器。

2.2 src/main/resources目录src/main/resources目录是存放配置文件和资源文件的默认目录,它包括以下几个子目录:- static:用于存放静态资源文件,如CSS、JavaScript、图片等。

- templates:用于存放模板文件,如HTML、Thymeleaf模板等。

- application.properties:存放项目的配置信息,如数据库配置、端口配置等。

- logback.xml:存放日志配置,如日志级别、输出路径等。

- mapper:存放MyBatis的Mapper.xml文件。

springboot目录结构和配置文件详解

springboot目录结构和配置文件详解

springboot目录结构和配置文件详解Spring Boot是一个用于创建独立的、基于生产级别的Spring应用程序的框架。

它具备了自动配置、内嵌服务器和依赖管理等特性,使得开发人员可以更加便捷地创建和部署Spring应用程序。

在使用Spring Boot开发应用程序时,了解其目录结构和配置文件是非常重要的。

本文将详细介绍Spring Boot的目录结构和配置文件。

一、目录结构Spring Boot的项目目录结构与传统的Java Web项目有些不同,主要包括以下几个目录:1. src/main/java:该目录用于存放项目的源代码文件。

2. src/main/resources:该目录用于存放项目的资源文件,如配置文件、静态资源文件等。

3. src/test/java:该目录用于存放项目的测试用例代码文件。

4. src/test/resources:该目录用于存放项目的测试用例的资源文件。

除了以上几个目录外,还有一些重要的文件如下:1. pom.xml:该文件是项目的依赖管理文件,用于配置项目所需的依赖库。

2. application.properties/application.yml:这是Spring Boot 的配置文件,用于配置应用程序的参数。

二、配置文件在Spring Boot中,配置文件主要包括两种形式:properties和yml。

1. application.properties:application.properties是以key=value的形式配置的文本文件。

其中,key为配置项的名称,value为配置项的值。

以下是一个示例的application.properties文件:```#数据库连接配置#服务器端口配置server.port=8080#日志级别配置.springframework=INFO```在上述示例中,配置了数据库连接URL、用户名和密码,服务器端口和日志级别等配置项。

Spring_c3p0 配置详解

Spring_c3p0 配置详解

<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
配置一个数据源
Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。
DBCP数据源
DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。下面是使用DBCP配置MySql数据源的配置片断:
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>root</value>
</property>
<property name="password">

Spring的Bean配置说明

Spring的Bean配置说明

<beans> Spring配置文件的根元素,包含一个或多个bean元素。

<bean> 用于告诉Spring容器一个类以及它是如何配置的。

class属性:Java Bean 类名(全路经)。

id属性:Java Bean在BeanFactory中的唯一标识,代码中通过BeanFactory获取JavaBean实例时需以此作为索引名称。

name属性:同上,如果给bean增加别名,可以通过name属性指定一个或多个id。

singleton属性:指定此Java Bean是否采用单例(Singleton)模式,如果设为“true”,则在BeanFactory作用范围内,只维护此Java Bean的一个实例,代码通过BeanFactory获得此Java Bean实例的引用。

反之,如果设为“false”,则通过BeanFactory获取此Java Bean实例时,BeanFactory每次都将创建一个新的实例返回。

abstract属性:设定ApplicationContext是否对bean进行预先的初始化。

parent属性:定义一个模板。

autowire属性:bean自动装配模式。

可选5种模式。

no:不使用自动装配。

Bean的引用必须通过ref元素定义。

byName:通过属性名字进行自动装配。

byType:如果BeanFactory中正好有一个同属性类型一样的bean,就自动装配这个属性。

如果有多于一个这样的bean,就抛出一个致命异常,它指出你可能不能对那个bean使用byType的自动装配。

如果没有匹配的bean,则什么都不会发生,属性不会被设置。

如果这是你不想要的情况(什么都不发生),通过设置dependency-check="objects"属性值来指定在这种情况下应该抛出错误。

constructor:这个同byType类似,不过是应用于构造函数的参数。

如果在BeanFactory中不是恰好有一个bean与构造函数参数相同类型,则一个致命的错误会产生。

springMVC配置(XML配置详解)

springMVC配置(XML配置详解)

springMVC配置(XML配置详解)原⽂出⾃:web.xml配置:servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><description>加载/WEB-INF/spring-mvc/⽬录下的所有XML作为Spring MVC的配置⽂件</description><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc/*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>这样,所有的.htm的请求,都会被DispatcherServlet处理;初始化 DispatcherServlet 时,该框架在 web 应⽤程序WEB-INF ⽬录中寻找⼀个名为[servlet-名称]-servlet.xml的⽂件,并在那⾥定义相关的Beans,重写在全局中定义的任何Beans,像上⾯的web.xml中的代码,对应的是dispatcher-servlet.xml;当然也可以使⽤<init-param>元素,⼿动指定配置⽂件的路径;dispatcher-servlet.xml 配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><!--使Spring⽀持⾃动检测组件,如注解的Controller--><context:component-scan base-package="com.minx.crm.web.controller"/><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix=".jsp" /></beans>第⼀个Controller:package com.minx.crm.web.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController {@RequestMapping("/index")public String index() {return "index";}}@Controller注解标识⼀个控制器,@RequestMapping注解标记⼀个访问的路径(/index.htm),return "index"标记返回视图(index.jsp);注:如果@RequestMapping注解在类级别上,则表⽰⼀相对路径,在⽅法级别上,则标记访问的路径;从@RequestMapping注解标记的访问路径中获取参数:Spring MVC ⽀持RESTful风格的URL参数,如:@Controllerpublic class IndexController {@RequestMapping("/index/{username}")public String index(@PathVariable("username") String username) {System.out.print(username);return "index";}}在@RequestMapping中定义访问页⾯的URL模版,使⽤{}传⼊页⾯参数,使⽤@PathVariable 获取传⼊参数,即可通过地址:http://localhost:8080/crm/index/tanqimin.htm 访问;根据不同的Web请求⽅法,映射到不同的处理⽅法:使⽤登陆页⾯作⽰例,定义两个⽅法分辨对使⽤GET请求和使⽤POST请求访问login.htm时的响应。

springsecurity3.2配置详解(结合数据库)

springsecurity3.2配置详解(结合数据库)

springsecurity3.2配置详解(结合数据库)没事就来了解下spring security.⽹上找了很多资料。

有过时的,也有不是很全⾯的。

各种问题也算是让我碰了个遍。

这样吧。

我先把整个流程写下来,之后在各个易混点分析吧。

1.建⽴⼏个必要的页⾯。

login.jsp index.jsp user.jsp admin.jsp error.jsp 后⾯⼏个只是⽤来做跳转的,⾥⾯没什么要注意的,就贴出login⾥⾯的吧<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>login</title></head><body><form action="/mavenTest/j_spring_security_check" method="post">账户:<input type="text" name="j_username" id="username"/>密码:<input type="text" name="j_password" id="password"/><input type="submit" value="登陆"/></form></body></html>2.配置web.xml 没有⽤的就没有粘贴了<filter><filter-name>springSecurityFilterChain</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class></filter><filter-mapping><filter-name>springSecurityFilterChain</filter-name><url-pattern>/*</url-pattern></filter-mapping>3.忘记吧pom.xml⽂件给出来了版本为<org.springframework-version>3.2.3.RELEASE</org.springframework-version><!-- spring security --><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${org.springframework-version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${org.springframework-version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${org.springframework-version}</version></dependency>4.配置spring security .xml⽂件<?xml version="1.0" encoding="UTF-8"?><beans:beans xmlns="/schema/security"xmlns:beans="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.2.xsd/schema/security/schema/security/spring-security.xsd"><!-- 不需要进⾏安全认证的资源 --><http pattern="/resources/**" security="none"/><http pattern="/login.jsp" security="none"/><!-- 资源所需要的权限 --><http auto-config='true'><form-login login-page="/login.jsp"default-target-url="/index.jsp"authentication-failure-url="/login.jsp?error=true"/><logout logout-success-url="/index.jsp"/><!-- 尝试访问没有权限的页⾯时跳转的页⾯ --><access-denied-handler error-page="/error-noauth.jsp"/><custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR"/></http><!-- ⾃定义⼀个filter,必须包含authenticationManager,accessDecisionManager,securityMetadataSource三个属性所有的功能都在这三个类中实现--><beans:bean id="myFilter" class="com.demo.im.model.security.MyFilterSecurotyInterceptor"> <beans:property name="authenticationManager"ref="authenticationManager"/><beans:property name="accessDecisionManager"ref ="myAccessDecisionManagerBean"/><beans:property name="securityMetadataSource"ref="securityMetadaSource"/></beans:bean><!-- 认证管理器,实现⽤户认证的⼊⼝,主要实现userdetailsservice --><authentication-manager alias="authenticationManager"><authentication-provideruser-service-ref="myUserDetailService"></authentication-provider></authentication-manager><beans:bean id="myUserDetailService"class="com.demo.im.model.security.DefaultUserDetailsService"></beans:bean><!-- 访问决策,决定某个⽤户具有的⾓⾊,是否有⾜够的权限去访问某个资源 --><beans:bean id="myAccessDecisionManagerBean"class="com.demo.im.model.security.MyAccessDecisionManager"/><beans:bean id="securityMetadaSource"class="com.demo.im.model.security.MyInvocationSecurityMetadaSource"/></beans:beans>5.MyFilterSecurotyInterceptor ⾃定义filter的代码如下。

Spring部分配置详解

Spring部分配置详解

Spring组件扫描<context:component-scan/>使用详解1.如果不想在xml文件中配置bean,我们可以给我们的类加上spring组件注解,只需再配置下spring的扫描器就可以实现bean的自动载入。

<!-- 注解注入--><context:annotation-config></context:annotation-config><context:component-scan base-package="mon.service.impl" /><context:component-scan base-package="mon.dao.ibatis" /><context:component-scan base-package="com.liantuo.hotel.app.dao.ibatis" /><context:component-scan base-package="com.liantuo.hotel.app.service" /><context:component-scan base-package="com.liantuo.hotel.app.service.ibatis" />2.下面是引用spring framework开发手册中的一段话“Spring 2.5引入了更多典型化注解(stereotype annotations):@Component、@Service和@Controller。

@Component是所有受Spring管理组件的通用形式;而@Repository、@Service和@Controller则是@Component的细化,用来表示更具体的用例(例如,分别对应了持久化层、服务层和表现层)。

spring配置详解

spring配置详解

spring配置详解1.前⾔公司⽼项⽬的后台,均是基于spring框架搭建,其中还⽤到了log4j.jar等开源架包。

在新项⽬中,则是spring和hibernate框架均有使⽤,利⽤了hibernate框架,来实现持久化,简化sql操作等。

Hibernate配置⽂件可以有两种格式,⼀种是 hibernate.properties,另⼀种是hibernate.cfg.xml。

后者稍微⽅便⼀些,当增加hbm映射⽂件的时候,可以直接在 hibernate.cfg.xml ⾥⾯增加,不必像 hibernate.properties 必须在初始化代码中加⼊。

我们新项⽬中使⽤的是hibernate.cfg.xml格式。

不过在本⽂中不将细述,后续有机会再补上。

公司项⽬中,中间件主要有tomcat,webshpere,WebLogic。

以下,将对项⽬中spring基本配置,log4j的配置,还有中间件的相关参数配置做⼀个初步的介绍。

2.spring配置——以⽼GIS项⽬为例⼦GISV13中的配置涉及到了SpringMVC,IOC,AOP, Quartz⽅⾯的配置。

配置的实现是通过注记配置和XML配置来合作实现。

这⾥,我将按照Spring的配置流程,将其他⼏个⽅⾯的配置融合其中,来进⾏全⾯解析。

2.1SpringMVC的配置2.1.1.web.xml的配置Web程序中,当中间件启动时,中间件会⾸先读取web.xml中的配置。

在web.xml中可以配置监听器,过滤器,servlet映射等等。

在Spring 框架中,我们主要需配置容器初始化时读取的spring容器配置⽂件的路径以及springMVC中的分发器DispatcherServlet。

在GISV13的web.xml中,我们定义了如下内容:InitGISConfigServlet定义了容器启动时,⾸先要运⾏这个⽅法。

然后servletname为MVC的这部分便是定义了springMVC的分发器以及此servlet所对应的加载配置⽂件的路径。

Spring配置AOP切入点execution详解

Spring配置AOP切入点execution详解
最后这个星号表示方法名号表示所有的方法后面括弧里面表示方法的参数两个句点表示任何参数xecution (* com.sample.service..*. *(..)) 整个表达式可以分为五个部分: 1、execution()::表达式主体。 2、第一个*号:表示返回类型, *号表示所有的类型。 3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service包、子孙包下所有类的方法。 4、第二个*号:表示类名,*号表示所有的类。 5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数

springMVC配置文件详解

springMVC配置文件详解

web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。

在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。

但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。

但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。

配置方式与普通的servlet基本相似。

配置内容如下:<!-- 配置前端控制器--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- ContextconfigLocation配置springmvc加载的配置文件适配器、处理映射器等--><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>spring</servlet-name><!-- 1、.action访问以.action结尾的由DispatcherServlet进行解析2、/,所有访问都由DispatcherServlet进行解析--><url-pattern>/</url-pattern></servlet-mapping>这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。

springcloudpom.xml完整配置详解

springcloudpom.xml完整配置详解

springcloudpom.xml完整配置详解1、⽗⼯程<packaging>pom</packaging><name>Maven</name><!-- FIXME change it to the project's website --><url>/</url><inceptionYear>2001</inceptionYear><distributionManagement><site><id>website</id><url>scp:///www/website</url></site></distributionManagement><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>12</piler.source><piler.target>12</piler.target><junit.version>4.12</junit.version><lombok.version>1.18.10</lombok.version><log4j.version>1.2.17</log4j.version><mysql.version>8.0.18</mysql.version><druid.version>1.1.16</druid.version><mybatis.spring.boot.version>2.1.1</mybatis.spring.boot.version></properties><dependencyManagement><dependencies><!--⽗⼯程引⼊spring cloud alibaba 2.1.0.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-project-info-reports-plugin</artifactId><version>3.0.0</version></dependency><!--spring boot 2.2.2--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.2.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--spring cloud Hoxton.SR1--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--mysql--><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version><scope>runtime</scope></dependency><!-- druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.spring.boot.version}</version> </dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!--log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency></dependencies></dependencyManagement><!--maven插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork><addResources>true</addResources></configuration><!----></plugin></plugins></build>2、⼦⼯程<dependencies><dependency><groupId>org.example</groupId><artifactId>common-service</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.2</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!-- https:///artifact/mysql/mysql-connector-java --> <dependency><groupId>org.example</groupId><artifactId>common</artifactId><version>${project.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.41</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>redis.clients</groupId><artifactId>jedis</artifactId></exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>3、swapper配置package main.config;import org.springframework.context.annotation.Bean;import ponentScan;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("main.controller")).paths(PathSelectors.any()).build();}//配置在线⽂档的基本信息private ApiInfo apiInfo() {return new ApiInfoBuilder().title("springboot利⽤swagger构建api⽂档").description("简单优雅的restfun风格,https:///blog/miachen520") .termsOfServiceUrl("https:///blog/miachen520").version("1.0").build();}}4、跨域配置package main.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configurationpublic class webConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {// 设置允许跨域的路径registry.addMapping("/**")// 设置允许跨域请求的域名.allowedOrigins("*")// 是否允许证书.allowCredentials(true).allowedMethods("*").maxAge(3600);}}5、Redis序列化serializer:package main.config;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.parser.ParserConfig;import com.alibaba.fastjson.serializer.SerializerFeature;import org.springframework.data.redis.serializer.RedisSerializer;import org.springframework.data.redis.serializer.SerializationException;import java.nio.charset.Charset;public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");private Class<T> clazz;public FastJsonRedisSerializer(Class<T> clazz) {super();this.clazz = clazz;}@Overridepublic byte[] serialize(T t) throws SerializationException {if (null == t) {return new byte[0];}return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); }@Overridepublic T deserialize(byte[] bytes) throws SerializationException {if (null == bytes || bytes.length <= 0) {return null;}String str = new String(bytes, DEFAULT_CHARSET);ParserConfig.getGlobalInstance().setAutoTypeSupport(true);return (T) JSON.parseObject(str, clazz);}}config:package main.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.boot.autoconfigure.data.redis.RedisProperties;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisOperations;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration@ConditionalOnClass(RedisOperations.class)@EnableConfigurationProperties(RedisProperties.class)public class redisConfig {@Bean@ConditionalOnMissingBean(name = "redisTemplate")public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<Object, Object> template = new RedisTemplate<>();//使⽤fastjson序列化FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);// value值的序列化采⽤fastJsonRedisSerializertemplate.setValueSerializer(fastJsonRedisSerializer);template.setHashValueSerializer(fastJsonRedisSerializer);// key的序列化采⽤StringRedisSerializertemplate.setKeySerializer(new StringRedisSerializer());template.setHashKeySerializer(new StringRedisSerializer());template.setConnectionFactory(redisConnectionFactory);return template;}@Bean@ConditionalOnMissingBean(StringRedisTemplate.class)public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {StringRedisTemplate template = new StringRedisTemplate();template.setConnectionFactory(redisConnectionFactory);return template;}}到此这篇关于springcloud pom.xml完整配置的⽂章就介绍到这了,更多相关springcloud pom.xml配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

详解SpringBoot配置文件启动时动态配置参数方法

详解SpringBoot配置文件启动时动态配置参数方法

详解SpringBoot配置⽂件启动时动态配置参数⽅法序⾔当我们要同时启⽤多个项⽬⽽⼜要使⽤不同端⼝或者变换配置属性时,我们可以在配置⽂件中设置${变量名}的变量来获取启动时传⼊的参数,从⽽实现了动态配置参数,使启⽤项⽬更加灵活例⼦server:port: ${PORT:50101} #服务端⼝spring:application:name: xc‐govern‐center #指定服务名eureka:client:registerWithEureka: true #服务注册,是否将⾃⼰注册到Eureka服务中fetchRegistry: true #服务发现,是否从Eureka中获取注册信息serviceUrl: #Eureka客户端与Eureka服务端的交互地址,⾼可⽤状态配置对⽅的地址,单机状态配置⾃⼰(如果不配置则默认本机8761端⼝)defaultZone: ${EUREKA_SERVER:http://eureka02:50102/eureka/} #向该地址上报⼼跳信息等server:enable‐self‐preservation: false #是否开启⾃我保护模式eviction‐interval‐timer‐in‐ms: 60000 #服务注册表清理间隔(单位毫秒,默认是60*1000)instance:hostname: ${EUREKA_DOMAIN:eureka01}${PORT:50101}:PORT是变量,当启动时该变量为空则默认50101端⼝语法意思是:从该yml配置⽂件中或者启动配置传⼊的参数中获取对应属性值可以类⽐⼀下写@Value注解时的格式@Value(" ${}")我们springboot的配置⽂件格式已经完成了,那么如何启动呢?idea 点击 run -> edit configuration设置配置⽂件参数步骤1、⾸先按“+"号添加⼀个Application(SpringBoot项⽬添加SpringBoot也可以)2、设置⽂件名称(随便起⼀个就⾏)3、主要我画的三个红圈地⽅1)、第⼀个是启动类的类路径2)、设置要传⼊配置⽂件中的变量值⽐如我要传⼊PORT这个变量的值:server:port: ${PORT:50101} #服务端⼝3)、项⽬名完成,启动在这⾥选择刚刚搞好的设置的名字,然后点击运⾏就会按照该设置中的参数来运⾏该项⽬了到此这篇关于详解SpringBoot配置⽂件启动时动态配置参数⽅法的⽂章就介绍到这了,更多相关SpringBoot 动态配置参数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、spring(app-config 文件夹下) app-config 文件夹下主要有 applicationContext_default.xml、a pplicat ionContext_admin.x ml、 applicationContext_order.xml、applicat ionContext.xml、dataAccessContext-loca l.xml 这里主要是设置系统所需要的业务逻辑 bean ,完成符合 spring-beans.dtd 的定义规则
value="/WEB-INF/config/action-servlets-config/action-servlets-default.xml /WEB-INF/config/action-servlets-config/a ction-servlets-order.x ml /WEB-INF/config/action-servlets-config/a ction-servlets-admin.xml" </plug-in> 通过 Spring 框架的 ContextLoaderPlugIn,把 act ion 类交由 Spring 容器来管理 这里需要说明的一点是:是否需要在 struts-config-default.xml 文件中一起加载所有的 act ion-serv lets 信息,还 是对应着分别加载。当然现在的系统中是一起加载的,不过如果分开加载,也可以很好的分模块开发,这边只是 探讨,作个说明而已。 />
type="org.springframework.web.struts.Delegat ingAct ionProxy" scope="request" <forward <forward </action> 注意里面的 type 属性,这里设置的是 org.springfra mework.web.struts.Dele gatingActionProxy ,正是通过它来 使得和 spring 很好的结合起来,这里你会发现没有具体的 action 类,它是通过 struts 和 spring 的结合处理 (action-servlets-config 文件夹下)的配置文件来实现的,这样 action 类也纳入到了 spring 容器的管理体系中去 了。 validate="true" input="/WEB-INF/jsp/login.jsp"> /> />
<!-- 把 Session 工厂注入给 hibernateTemplate --> <!-- 解释 一下 hibernateTemplate : hibernateTemplate 提供了 很多方 便的方 法, 在执行 时自动 建立 HibernateC allback 对象,例如:load()、get()、save 、delete()等方法。 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <constructor-arg> <ref local="sessionFactory" /> </constructor-arg> </bean> <!-- 把 DAO 注入给 Session 工厂 --> <bean id="userDAO" class="erDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 把 Service 注入给 DAO --> <bean id="userService" class="erService"> <property name="userDAO"> <ref local="userDAO" /> </property> </bean> <!-- 把 Action 注入给 Service --> <bean name="/user" class="erAction"> <property name="userService"> <ref bean="userService" /> </property> </bean> </beans>
name="success" name="failure"
path="/dispatch.do?def=default" path="/WEB-INF/jsp/login.jsp"
struts 和 spring 的结合就是这样来实现的, 当然除了这种方式以外还有其他的, 可以参考: 关于 struts 中 validate 的几种情况 除了以上的配置信息外,还有几个重要的配置,它是结合 Spring、Tiles、 Va lidator 等框架的润滑剂,主要是通 过 Struts 的 plug-in 技术来实现的,举例如下: <plug-in className="org.springfra mework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation"
<plug-in
className="org.apache.struts.tiles.TilesPlugin"> property="definitions-config" /> />
<set-property
value="/WEB-INF/config/tiles-config/t iles -defs-default.x ml" <set-property </plug-in> 实现 Tiles 技术的嫁接 property="moduleAware" value="true"
、验证技术(validation-config 文件夹下)
到这里,或许会留意到没有提及 hibernate , 有关 hibernate 的设置,也是通过 spring 来配置的,在后面的 spring 文件中会看到,有关 hibernate.cfg.xml 则存放在 classpath 下,需要用到的 hibernate 属性配置信息 hibernate.properties 也存放在 classpath 下
下面分别介绍一下各个主要的配置文件内容 1、struts(struts-config 文件夹下) struts-config 文件夹下主要有 struts-config-default.xml、 struts-conf ig-admin.xml、 struts-config-order.x ml 三个 配置文件 这里放置的是有关 struts 的配置信息,比如 form-bean 、action,有关 form-bean 的配置和一般的 struts 程序没 有什么两样,这里需要说明的是 action 的配置 这里举例一个配置片断: <action name="loginForm" parameter="method" path="/loginAction"
分别解释一下各个配置文件的主要用途:
采用 struts+hibernate+spring 开发的一个 web 系统--配置文件介绍
从配置文件说起 在 WEB-INF/config 下有多种配置文件,这里作个介绍,对项目的开发很有意义 主要涉及到了 struts(struts-config 文件夹下) 合处理(action-servlets-config 文件夹下) 模版技术(tiles-config 文件夹下) 、 、spring(app-config 文件夹下) 、struts 和 spring 的结
想必用过 Spring 的程序员们都有这样的感觉,Spring 把逻辑层封装的太完美了(个人感觉 View 层封装的不是 很好)。以至于有的初学者都不知道 Spring 配置文件的意思,就拿来用了。所以今天我给大家详细解释一下 Spring 的 applicationC ontext.xml 文件。Ok ,还是通过代码加注释的方式为大家演示: 以下是详解 Spring 的 applicationContext.xml 文件代码: <!-- 头文件,主要注意一下编码 --> <?xml version="1.0" encoding="UTF-8"?> <!DOC TYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"org.apache.struts.validator.ValidatorPlugIn"> property="pathnames"
<set-property
value="/WEB-INF/config/validation-conf ig/validator-rules -default.x ml, /WEB-INF/config/validation-config/validation-default.xml" </plug-in> 在 Struts 框架中采用 Validator 框架的验证机制 />
相关文档
最新文档