Petite uses annotation based configuration to make setup and configuration simple as possible. It doesn't depend on any external (XML) files; by default all configuration is done automagically, from Java. Nevertheless, it is easy to configure and extend Petite to match any requirements.

Bean Iteration

At any time, all registered beans may be iterated. This is useful when some additional modification has to be performed on bean classes, after being registered. Method beansIterator iterates all beans - actually, it iterates all bean definitions! This means that beans may not be even initialized yet (there was no first lookup yet).


Petite container is quite configurable. Configuration is available via method config().


Default scope for beans registration, when explicit scope is not specified. Default value: SingletonScope.class.


Defines default wiring mode. Can be one of the following:

  • WiringMode.NONE - no wiring,

  • WiringMode.STRICT - throws an exception if injection failes


  • WiringMode.OPTIONAL - ignores unsuccessful injections

  • WiringMode.AUTOWIRE - tries to wire all fields

Mode can be changed during runtime, although this is not recommended.


Flag for detecting duplicated bean names during registration (false by default). If set to true, Petite will throw an exception if bean with the same name already exists in the container.


Flag for resolving parameter references (true by default). Petite parameters can define a value that contains value of other parameter. For example: defineParameter("name", "${name2}"); will define parameter name with value equals to value of other parameter, name2.


Defines what will be the default bean name, when no explicit name is provided. If set to false (default), uncapitalized simple type name will be used as bean name (for example, app.service.SomeService will be named as someService).

If set to true, then full bean type name will be used as bean name.


Defines reference lookup order. When looking up for a bean reference, Petite may look for it in different ways. By default, the lookup order is the following:

  • PetiteReference.NAME

  • PetiteReference.TYPE_SHORT_NAME

  • PetiteReference.TYPE_FULL_NAME

User may change or modify this lookup order.


When set to true (default), Petite will use Paramo to extract constructor and method argument names - this information is not provided by java reflection API and must be read from debug information in bytecode. If set to false, injection by name will not be available for constructor and method arguments.

Last updated