EzyFox Server Project Configuration

EzyFox Server read application.properties file and application.yaml file in your classpath, so if you don't need create a new configuration file, you just need add configuration to the 2 files.
But let's careful, because if you don't want to run with EzyEmbeddedServer like this but you want to run your application on ezyfox-server, so you should not use application.properties and application.yaml file, because there are many application on ezyfox-server, so ezyfox-server will not know to read what's file, maybe it will read the first one. So if you want to place your configuration file in classpath, so you should named it like your-app-name-config.[properties or yaml]
To know in deep how does EzyFox Server read configuration file, please read this post

Run with specific profile

In a real project, you will always has some environment to run (i.e local, alpha, beta, prod). You can create your configuration files with -local, -alpha, -beta, -prod suffix, and when you want to run with a specific profile, you just need set active_profiles or ezyfox.active_profiles in your properties like this
Run embedded server on Eclipse
In Arguments tab, you just need add a VM argument -Dactive_profiles=alpha and run. If you want to run multi profile, you just need input that profiles with comma to seperate like this: -Dactive_profiles=alpha,beta,prod
Run embedded server on IntelliJ
Same to Eclipse, you just need move to Build and run area -> Add VM Options and input -Dactive_profiles=alpha and run
Run with ezyfox-server
On linux you can run:
./console.sh -Dactive_profiles=alpha
To view console log or run
./start-service.sh -Dactive_profiles=alpha
To run exyfox-server in background
On window you can run:
console.bat "-Dactive_profiles=alpha"
If you can not run with active profiles, maybe you need download the newst version of ezyfox-server here.

Map configuration to Class

You can map configration to a class. Let's say we have a configuration file with content:
environment=local
database.name=hello-world
database.host=localhost
database.port=27017
You just need add @EzyPropertiesBean to the class like this:
@Data
@EzyPropertiesBean
public class PluginConfig {
    private String environment;
    private DatabaseConfig database;
    
    @Data
    public static class DatabaseConfig {
        private String name;
        private String host;
        private int port;
    }
}
And the class PluginConfig will become a bean, and you can inject everywhere like this:
@EzyAutoBind
private PluginConfig pluginConfig;
And you also can map configuration to a class with prefix of properties:
@Data
@EzyPropertiesBean(prefix = "database")
public static class DatabaseConfig {
    private String name;
    private String host;
    private int port;
}
You can refer hello-world example project to get more information

Next step