All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cmeza.spring.ioc.handler.configuration.IocAutoConfiguration Maven / Gradle / Ivy

The newest version!
package com.cmeza.spring.ioc.handler.configuration;

import com.cmeza.spring.ioc.handler.IocContext;
import com.cmeza.spring.ioc.handler.builders.Ioc;
import com.cmeza.spring.ioc.handler.contracts.IocContract;
import com.cmeza.spring.ioc.handler.handlers.IocMethodInterceptor;
import com.cmeza.spring.ioc.handler.processors.AnnotatedClassProcessor;
import com.cmeza.spring.ioc.handler.processors.AnnotatedMethodProcessor;
import com.cmeza.spring.ioc.handler.processors.AnnotatedParameterProcessor;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;

import java.util.ArrayList;
import java.util.List;

@AutoConfiguration
@AutoConfigureOrder(Ioc.IOC_ORDER)
@ConditionalOnClass(Ioc.class)
@RequiredArgsConstructor
public class IocAutoConfiguration {

    @Autowired(required = false)
    private List> contracts = new ArrayList<>();

    @Autowired(required = false)
    private List> classProcessors = new ArrayList<>();

    @Autowired(required = false)
    private List> methodProcessors = new ArrayList<>();

    @Autowired(required = false)
    private List> parameterProcessors = new ArrayList<>();

    @Autowired(required = false)
    private List> methodInterceptors = new ArrayList<>();

    @Bean
    public IocContext iocContext() {
        IocContext context = new IocContext();
        context.setContracts(this.contracts);
        context.setClassProcessor(this.classProcessors);
        context.setMethodProcessor(this.methodProcessors);
        context.setParameterProcessor(this.parameterProcessors);
        context.setMethodInterceptors(this.methodInterceptors);
        return context;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy