精华内容
下载资源
问答
  • 13 common frames omitted 我的配置是这样的: @Configuration @EnableAutoConfiguration public class AppConfig { ... some beans } 我在项目资源文件夹下添加了META-INF / spring.factories,如下面的43.2 ...

    我有一个Spring Boot项目,我可以在IntelliJ中成功运行,但是当我打包一个可执行jar时,我再也无法运行它了.这是异常的堆栈跟踪:

    18:13:55.254 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@b3d7190: startup date [Wed Sep 07 18:13:55 CEST 2016]; root of context hierarchy

    18:13:55.403 [main] WARN o.s.c.a.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [el.dorado.App]; nested exception is java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.

    18:13:55.414 [main] ERROR o.s.boot.SpringApplication - Application startup failed

    org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [el.dorado.App]; nested exception is java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.

    at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:489)

    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:191)

    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:321)

    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243)

    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)

    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:98)

    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:681)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523)

    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)

    at dz.lab.jpmtask.App.main(App.java:33)

    Caused by: java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.

    at org.springframework.util.Assert.notEmpty(Assert.java:276)

    at org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.getCandidateConfigurations(EnableAutoConfigurationImportSelector.java:145)

    at org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.selectImports(EnableAutoConfigurationImportSelector.java:84)

    at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:481)

    ... 13 common frames omitted

    我的配置是这样的:

    @Configuration

    @EnableAutoConfiguration

    public class AppConfig {

    ... some beans

    }

    我在项目资源文件夹下添加了META-INF / spring.factories,如下面的43.2 Locating auto-configuration candidates所述,但这并没有解决问题:

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

    el.dorado.AppConfig

    这是项目pom.xml:

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    4.0.0

    el.dorado

    ElDorado

    jar

    1.0-SNAPSHOT

    ElDorado

    http://maven.apache.org

    4.12

    org.springframework.boot

    spring-boot-starter-parent

    1.4.0.RELEASE

    org.springframework.boot

    spring-boot-starter

    org.springframework.boot

    spring-boot-starter-data-jpa

    com.h2database

    h2

    junit

    junit

    ${junit.version}

    test

    maven-assembly-plugin

    el.dorado.App

    true

    jar-with-dependencies

    make-assembly

    package

    single

    org.jacoco

    jacoco-maven-plugin

    jacoco-initialize

    prepare-agent

    jacoco-site

    verify

    report

    解决方法:

    我只想弄清楚,我应该一直使用Spring Boot maven plugin.现在我的pom.xml的构建部分如下所示:

    org.springframework.boot

    spring-boot-maven-plugin

    true

    dz.lab.jpmtask.App

    repackage

    org.jacoco

    jacoco-maven-plugin

    jacoco-initialize

    prepare-agent

    jacoco-site

    verify

    report

    我使用mvn clean包和java -jar target / myproject.jar构建项目,它就像一个魅力.

    标签:java,spring,spring-boot,maven,spring-data-jpa

    来源: https://codeday.me/bug/20190926/1817967.html

    展开全文
  • 配置默认Action <package>  <default-action-ref name="index"/> ...action name="index">...配置Action的默认处理类 原本的默认处理器是struts-default中的ActionSupport 如...

    配置默认Action

    <package>

      <default-action-ref name="index"/>

      <action name="index"></action>

    </package>

    配置Action的默认处理类

    原本的默认处理器是struts-default中的ActionSupport

    如需改变

    <package>

      <default-class-ref class="com.controller.Index"/>

    </package>

     

    转载于:https://www.cnblogs.com/to-red/p/11188771.html

    展开全文
  • 任何编程语言都有自己的读写配置文件的方法和格式,Java也不例外。在Java编程语言中读写资源文件最重要的是Properties,功能大致如下:1. 读写Properties文件2. 读写XML文件3. 不仅可以读写上述两文件,还可以...

    任何编程语言都有自己的读写配置文件的方法和格式,Java也不例外。

    在Java编程语言中读写资源文件最重要的类是Properties,功能大致如下:

    1. 读写Properties文件

    2. 读写XML文件

    3. 不仅可以读写上述两类文件,还可以读写其它格式文件如txt等,只要符合key=value格式即可.

    注意:资源文件中含有中文时的处理方法

    1. 将中文字符通过工作转成utf8编码,可以通过Java自带的nativetoascii或Eclipse中的属性编辑器。

    2. 直接调用 new String(youChineseString.getBytes("ISO-8859-1"), "GBK");

    附:WEB程序中加载资源文件的方法

    Properties prop = null;

    1. prop = Thread.currentThread().getContextClassLoader().getResourceAsStream("filename");

    2. prop = this.getClass().getClassLoader().getResourceAsStream("filename");

    Properties类继承自Hashtable,大致API如下:

    e846ba568dfc8e0e9df5020737db9be6.png

    b6e8a07e3f17a92a839a2b8e54eca2df.png

    49d702fd26d266c80f41527923328eae.png

    好了,直接用代码说话吧,这个类很容易使用

    看下Demo目录结构:

    89268439f0d38ce37f7d2194e835a48d.png

    先来个读取配置文件类:PropertiesReader.java

    关于Properties读取文件这里提供六种方法:《JAVA读取Properties的六种方法》,下面取最常用的一种

    关于路径的写法:(可以相对路径也可以是绝对路径)

    Class.getResourceAsStream(String path)

    path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath(src文件)根下获取。

    1 packagecom.lcw.properties.test;2

    3 importjava.io.IOException;4 importjava.io.InputStream;5 importjava.util.Enumeration;6 importjava.util.Properties;7

    8 /**

    9 * properties文件读取类10 *11 */

    12 public classPropertiesReader {13

    14 public voidgetPropertiesReader(){15 Properties properties=new Properties();//获取Properties实例

    16 InputStream inStream=getClass().getResourceAsStream("config.properties");//获取配置文件输入流

    17 try{18 properties.load(inStream);//载入输入流

    19 Enumeration enumeration=properties.propertyNames();//取得配置文件里所有的key值

    20 while(enumeration.hasMoreElements()){21 String key=(String) enumeration.nextElement();22 System.out.println("配置文件里的key值:"+key+"=====>配置文件里的value值:"+properties.getProperty(key));//输出key值

    23 }24

    25 } catch(IOException e) {26 e.printStackTrace();27 }28 }29

    30 }

    再来个测试类:PropertiesTest.java

    1 packagecom.lcw.properties.test;2

    3 public classPropertiesTest {4

    5 /**

    6 * 测试类7 */

    8 public static voidmain(String[] args) {9 PropertiesReader propertiesReader=newPropertiesReader();10 propertiesReader.getPropertiesReader();11 }12

    13 }

    这是配置文件信息:config.properties

    color=black

    animal=rabbit

    food=hamburger

    chinese=\u6211\u662F\u4E2D\u6587

    看下运行效果:

    f521b454150be1c34238dfbaeed74e39.png

    若要写入配置i文件也很简单,这里添加一个方法:

    1 //写入资源文件信息

    2 public voidwriteProperties(){3 Properties properties=newProperties();4 try{5 OutputStream outputStream=new FileOutputStream("config.properties");6 properties.setProperty("number", "2015");7 properties.setProperty("song", "手写的从前");8 properties.store(outputStream, "rabbit");9 outputStream.close();10 } catch(FileNotFoundException e) {11 e.printStackTrace();12 } catch(IOException e) {13 e.printStackTrace();14 }15 }

    生成文件:

    #rabbit

    #Wed Jan07 17:16:56 CST 2015number=2015song=\u6211\u7231\u4F60

    展开全文
  • java通用异常处理类,日志处理类Log,不用重启程序,动态读取配置文件
  • 在现在的WEB开发中不管是JAVA还是.NET大家对配置文件一定不会陌生.但它的实现原理对新手来说却又是那么的模糊.下面的内容是说明如何自定义处理配置类 所有能够处理配置节的必须要实现...

    在现在的WEB开发中不管是JAVA还是.NET大家对配置文件一定不会陌生.但它的实现原理对新手来说却又是那么的模糊.下面的内容是说明如何自定义处理配置类
    所有能够处理配置节的类必须要实现IConfigurationSectionHandler接口,
    他的作用是处理对特定的以前的配置节的访问。而IConfigurationSectionHandler接口很简单
    只有一个object Create(object parent,object configContext,XmlNode section)方法.这个方法不需要主动的调用.
    它是在ConfigurationSettings.GetConfig这个静态方法的时候自动调用的,也就是说,当你在程序中使用ConfigurationSettings.GetConfig来获取配置节的时候,.net会根据改配置节声明中所定义的类名和路径自动实例化配置节处理类,并调用Create方法.
    相信了解Duwamish解决方案的朋友对下面这一段不会陌生:

     

    1、在global.asax的Application_OnStart方法里面调用ApplicationConfiguration.OnApplicationStart静态方法,并获得应用程序根的绝对路径。
        void Application_OnStart()
    {
    ApplicationConfiguration.OnApplicationStart(Context.Server.MapPath( Context.Request.ApplicationPath));
    string configPath = Path.Combine(Context.Server.MapPath( Context.Request.ApplicationPath ),
    "remotingclient.cfg");
    if(File.Exists(configPath))
    RemotingConfiguration.Configure(configPath);
    }
    
    2、ApplicationConfiguration.OnApplicationStart静态方法里调用System.Configuration.ConfigurationSettings.GetConfig方法处理配置节:
            public static void OnApplicationStart(String myAppPath)
    {
    appRoot = myAppPath;
    System.Configuration.ConfigurationSettings.GetConfig("ApplicationConfiguration");
    System.Configuration.ConfigurationSettings.GetConfig("DuwamishConfiguration");
    System.Configuration.ConfigurationSettings.GetConfig("SourceViewer");
    }
    
    大家已经注意到了,程序并没有获取GetConfig返回的值,这是因为GetConfig方法会引发配置节处理程序的Create方法,
    所以,只需要在Create方法中将配置值取出来就行了。
    System.Configuration.ConfigurationSettings.GetConfig("ApplicationConfiguration")
    这个静态方法来读取ApplicationConfiguration配置节的时候,
    会相应的类来对这个配置节进行处理。




    下面是我自定义的一个配置节处理类.还忘大家指教

     

     

      1/**//// <summary>
      2    /// ConfigurationSetting 的摘要说明。
      3    /// </summary>

      4    public class ConfigurationSetting: IConfigurationSectionHandler
      5    {
      6        /**//// <summary>
      7        /// 配置
      8        /// </summary>

      9        protected NameValueCollection Settings;
     10        /**//// <summary>
     11        /// 默读构造函数
     12        /// </summary>

     13        public ConfigurationSetting()
     14        {
     15            //
     16            // TODO: 在此处添加构造函数逻辑
     17            //
     18        }

     19        /**//// <summary>
     20        /// 
     21        /// </summary>
     22        /// <param name="parent"></param>
     23        /// <param name="configContext"></param>
     24        /// <param name="section"></param>
     25        /// <returns></returns>

     26        public Object Create(Object parent, object configContext, XmlNode section)
     27        {
     28                    
     29            try
     30            {
     31                NameValueSectionHandler baseHandler = new NameValueSectionHandler();
     32                Settings = (NameValueCollection)baseHandler.Create(parent, configContext, section);
     33            }

     34            catch
     35            {
     36                Settings = null;
     37            }

     38            return null;
     39        }

     40
     41        ReadSetting#region ReadSetting 
     42        
     43        /**//// <summary>
     44        /// 读取字符串类型的配置值
     45        /// </summary>
     46        /// <param name="settings">配置项</param>
     47        /// <param name="key">键名</param>
     48        /// <param name="OriginalValue">配置值</param>

     49        public static void ReadConfig(NameValueCollection settings, string key, ref string OriginalValue)
     50        {
     51            try
     52            {
     53                Object setting = settings[key];
     54                OriginalValue = (setting == null? OriginalValue : (string)setting;
     55                return ;
     56            }

     57            catch
     58            {
     59                return ;
     60            }

     61        }

     62
     63        public static String ReadConfig(NameValueCollection settings, String key, String defaultValue)
     64        {
     65            try
     66            {
     67                Object setting = settings[key];
     68                
     69                return (setting == null? defaultValue : (String)setting;
     70            }

     71            catch
     72            {
     73                return defaultValue;
     74            }

     75        }

     76     
     77        public static bool ReadConfig(NameValueCollection settings, String key, bool defaultValue)
     78        {
     79            try
     80            {
     81                Object setting = settings[key];
     82                
     83                return (setting == null? defaultValue : Convert.ToBoolean((String)setting);
     84            }

     85            catch
     86            {
     87                return defaultValue;
     88            }

     89        }

     90        
     91        
     92        public static int ReadConfig(NameValueCollection settings, String key, int defaultValue)
     93        {
     94            try
     95            {
     96                Object setting = settings[key];
     97                
     98                return (setting == null? defaultValue : Convert.ToInt32((String)setting);
     99            }

    100            catch
    101            {
    102                return defaultValue;
    103            }

    104        }

    105
    106
    107        #endregion

    108}


    备注:
        

    IConfigurationSectionHandler 类的实例必须是线程安全且无状态的。Create 方法必须可由多个线程同时调用。

    而且,Create 生成的配置对象必须是线程安全且不可变的。而且,由于配置对象由配置系统来缓存,
    因此务必要修改 Create 的父参数。
    例如,如果 Create 的返回值只对父参数进行少量修改,则实际修改必须在父参数的复本上进行,而不能在原参数上进行。


    参考:
        微软中国社区(Duwamish深入剖析)
    MSDN








     

    转载于:https://www.cnblogs.com/Mijie/archive/2007/09/13/891539.html

    展开全文
  • 需要对配置文件进行脱敏处理,具体步骤总结如下:github地址https://github.com/ulisesbocchio/jasypt-spring-boot1.导入依赖com.github.ulisesbocchiojasypt-spring-boot-starter1.182.编写配置类@Componentpublic ...
  • package ... import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; ... * Properties配置文件处理工具 * @author wdy */ public class PropertiesUtil...
  • Java Map实现之:Properties1.Properties的特点2.Demo 1.Properties的特点 Properties 是 Hashtable 的子类,该对象常用于处理属性文件 由于属性文件里的 key、value 都是字符串类型,所以 Properties 里的...
  • 主要为大家详细介绍了Java异常分类及统一处理,SpringMVC处理异常支持ajax,web.xml配置异常,感兴趣的小伙伴们可以参考一下
  • (English instruction please see README-ENGLISH.md )jTransactionsjTransactions是一个事明式事务工具,目的是将Java的事务(及声明式...都可以用相似的配置方式进行声明式事务配置,jTransactions运行环境为Java6...
  • 0、前言无论任何项目,都避免不了在运行期间出现的一些异常,并伴随着因业务逻辑的需要而给出相应的提示,使得系统变得更加友好,这提示处理,我们统称为异常处理(exceptionahandling)。在项目中异常处理所抛出的...
  • java工具读取配置文件工具 只是案例代码 抓取异常以后的代码自己处理 import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties...
  • Java自带了处理配置文件的:import java.util.Properties;配置文件li.deyong的内容如下:ConnectionString=jdbc:microsoft:sqlserver://ldy:1433;DatabaseName=dgUserName=saUserPass=abcIP=192.168.1.27Port=...
  • 1、拦截器实现对每一个请求处理前后进行相关的业务操作,类似于Servlet的filter。 可以让普通的Bean实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter来实现自定义拦截器。 package ...
  • 1.springmvc配置文件自动注解设置。xmlns:xsi=...
  • 2. 注册Java配置类 3. 注册普通BeanDefinition 3.1刷新, 获取Bean工厂 3.2Bean工厂配置的设置 3.3. 激活Bean工厂后处理器(重点) 3.4注册bean后处理处理器 3.5 初始化非延迟加载的的单例Bean (延迟加载的单例将...
  • 最新有个小业务需要用到批量去除敏感词,调用量非常频繁且对性能要求较大,且关键字是随时会增加的,因此也就不能使用简单的替换,而是需用用到配置文件方式处理。 两个,一段配置文件 1、初始化敏感词库,将...
  • 1.springmvc配置文件自动注解设置。 <?xml version="1.0" encoding="UTF-8"?><beans xmlns=...
  • package xxxxxx.manage.importexcel;...import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; import net.sf.json.JSONObject; import xxxxxx.supp...
  • 错误:资源:系统级(线程)/ 环境级(绘图) 异常:编译级:Exception 运行级:Exception -> RuntimeException 二、运行异常 输入不匹配异常:InputMismatchException 算术异常:Arithmetic...
  • 无论任何项目,都避免不了在运行期间出现的一些异常,并伴随着因业务逻辑的需要而给出相应的提示,使得系统变得更加友好,这提示处理,我们统称为异常处理(exceptionahandling)。 在项目中异常处理所抛出的异常...
  • package XXXXX.manage.importexcel;...import java.beans.IntrospectionException; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce...
  • 1.springmvc配置文件自动注解设置。xmlns:xsi=...
  • Properties ----》 配置文件 属于Map集合体系的。Properties的作用:生成配置文件。读取配置。Properties要注意的事项:往Properties添加数据的时候,千万不要添加非字符串类型的数据,如果添加了非字符串类型的...
  • 对于堆外内存的情况,只适用于DirectByteBuffer,不适用于Unsafe。JConsoleVisualVMJprofilerJConsole远程连接配置JConsole只能使用JMX方式。假设内网服务器IP为:xxx.xx.xx.xx,服务器端启动java程序命令如下:...
  • 我有一个标准的maven项目布局.一些配置文件存储在src / main / conf中.现在我想在src / test中的单元测试中读取这些文件(例如,从其中...比maven将处理与测试资源相同的配置文件....src/test/resourcessrc/main/conf...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,772
精华内容 1,508
关键字:

java配置处理类

java 订阅